Auge: PHP Funktion zweimal verwenden?

Beitrag lesen

Hallo

Ich würde gerne folgende Aspekte genauer beleuchten:

  1. Der Name der Funktion. Sie heißt firmen, liefert aber auch eine Abteilung. Der Name scheint mir nicht 100% passend. Kann natürlich ein Irrtum sein, ist nur so ein Gefühl.

Ich habe den Namen übernommen, um nicht zusätzlich Verwirrung zu stiften. Aber ja, der Funktionsname ist, gerade wegen der Veränderung des Einsatzzweckes, zumindest überdenkenswert.

  1. Der Name des Parameters $all. Vermutlich hätte ich ihn $nurExtern genannt, weil sich dann besser erschließt, was passiert.

Soweit ich die Ausgangslage verstehe, geht es um Ergebnisse aus dem interne Bereich gegenüber welchen aus dem internen und externen Bereich. Also eher $nurIntern (true, false).

  1. Die Entscheidung, ihm einen Defaultwert zu geben. Wenn eine von beiden Aufrufvarianten der Ausnahmefall ist und die andere öfter verwendet wird, macht ein Defaultwert Sinn. Oder wenn man schon eine Codebasis hat, die die Funktion an vielen Stellen aufruft, und ich einen Parameter hinzufüge. Andernfalls würde ich keinen Default setzen.

So weit ich verstanden habe, wird der Code für die Abfrage von Datensätzen aus dem internen Bereich bereits eingesetzt. Wenn ja, würde ich den optionalen Parameter bevorzugen, weil ich die bisherigen Aufrufe der Funktion für die Abfrage von Datensätzen aus dem internen Bereich nicht mehr anfassen müsste. Auch, wenn diese Weise der Abfrage vermutlich den Großteil der Aufrufe ausmacht, würde ich einen optionalen Parameter bevorzugen.

  1. Die Konstruktion des SQL Statements. Ich bin wasserscheu und zucke automatisch zusammen, wenn das [Don't Repeat Yourself] Prinzip verletzt wird und die Auswertung solcher Parameter auf eine Auswahl von vollständig ausformulierten SQL Queries führt. Ich erzeuge dann lieber Bausteine für die Query und setze sie am Ende zusammen.

Wenn es um meinen eigenen Code ginge, würde ich das auch so handhaben. Zur beispielhaften Gegenüberstellung der Queries, abhängig vom Wert des optionalen Parameters, finde ich meine Schreibweise besser lesbar. Gerade, weil es sich meiner Meinung nach bei Sophie mit einiger Wahrscheinlichkeit um eine Beginnerin in Sachen Programmierung handeln dürfte.

Und noch ein Hinweis auf PHP 7: Ab dieser Version kann man die Parametertypen genauer festlegen und so fehlerhafte Übergaben vermeiden:

function firmen(mysqli $mysqli, bool $all = false) {
}

Gut zu wissen. Danke.

Tschö, Auge

--
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett