Matti Mäkitalo: Globale Variablen

Beitrag lesen

Hi,

du hast ein fachlich hilfreich von mir bereits erhalten. Ich will aber den Hauptpunkt nochmals herausgreifen und damit betonen.

  1. Dependency Injection!
  2. Wie kommt jetzt der Konfigurationswert aus Punkt 2 an die Stelle, wo er gebraucht wird in Punkt 3: Die ideale Lösung ist hier noch nicht gefunden, es hängt davon ab, was man bereits einsetzt oder einzusetzen gewillt ist. Die klassische Lehre von Dependency Injection würde die Konfigurationswerte einfach als ebenfalls zu injectendes Element betrachten, d.h. beim Initialisieren des DI-Konstrukts würden alle Konfigurationswerte ebenfalls initialisiert, und durch den außerdem definierten Objektbaum verwendet.

Um DI zu erklären verweise ich im Kontext PHP mal auf PHP: The right way. Gibt sicherlich bessere Ressourcen, um DI zu erklären, aber PHP: The Right Way sollte man IMHO als PHP-Entwickler sowieso mal gesehen haben.

Weiterhin musst du die Konfigurationswerte nicht beim Initialisieren des DI-containers mit initialisieren. Du kannst auch ein proxy-Objekt mit Lazy-Loading darüber aufbauen. Alternativ injectest du eine Konfig-Factory, die lazy die eigentliche Konfiguration lädt, wenn sie das erste mal benutzt wird.

Wichtig ist im Falle Proxy-Objekt: die Konfiguration kann kein primitiver Wert sein, sondern ist ein Objekt. Sonst funktioniert das Proxy-Pattern nicht.

Viele Grüße,
Matti