hi Lieber Kollege,
Werde ich immer tun. Ich will aber auch dass das ganze angepasst an andere Programmierer schreiben, damit sie meine Code verstehen und weiterentwickeln oder verändern können und sich nich auf den Kopf stellen müssen um den Code zu verstehen.
Ja, darauf kommt es an. Manchmal ists ja auch so, dass man nach einiger Zeit selbst der Andere ist. Also, ich hab da ein Programm, da läuft was nicht, die Seite wird in 'de' ausgegeben anstelle 'en'. Wen schnappe ich mir? Genau: $this
! Tatsächlich habe ich viele Kollegen kennengelernt, die gucken als Erstes in den Konstruktor und werfen als Nächstes einen Dump um zu vergleichen ob das was der Konstruktor verspricht auch stimmt.
Schön auch, wenn es keine globalen Variablen gibt und die allesamt an $this
gewanzt sind -- So hat man alles gleich auf dem Schirm. Auch die Abhängigkeiten sind zu sehen, also Eigenschaften die ihrerseits wiederum Instanzen anderer Klassen sind. So sieht ein Neuankömmling bspw. eine Eigenschaft 'Config' [CFG] like this:
My Object
(
[CFG] => Config Object
(
[LANG] => de
)
)
und weiß damit sofort, dass es für [CFG] auch Methoden geben muss, um an die Config ranzukommen in lesender oder schreibender Weise. Im speziellen Fall sollte LANG nicht 'de' sein, also ab in den eigenen Konstruktor um zu gucken, was bei der Initialisierung schiefgegangen ist. Ggf. sind beim Setzen der LANG noch weitere Instanzen beteiligt, etwa ein Requestobjekt was wiederum Methoden mitbringt welche den Accept-Language-Header parsen.
So ist es eine Frage der Zweckmäßigkeit, den Code aufzuteilen, insbesondere hinsichtlich Debugging und nicht etwa der Drang nach atomaren Funktionseinheiten. Debugging verlangt kurze Wege und wer einmal das Vergnügen hatte in der Hotline zu sitzen weiß wie ungehalten manche Kunden sein können ***grrr.
Schönen Sonntag 😉