PHP – Dependency Injection

Der heutige Artikel beschäftigt sich mit dem Entwurfsmuster “Dependency Injection”. Wer sich in PHP mit Frameworks beschäftigt wird über diesen Begriff möglicherweise schon gestolpert sein. So nutzen sowohl das Zend-Framework als auch Symphony das  Entwurfsmuster um die Abhängigkeiten zwischen Systemkomponenten aufzulösen.

Die klassische Vorgehensweise ist es, dass jedes Objekt seine Abhängigkeiten (bspw. Instanzen anderer Klassen) die es verwendet selbst erzeugt. Das setzt aber vorraus, dass das Objekt weiss wie man diese verwendeten Klassen instanziiert. Dependency Injecton geht jetzt her und lagert die Erzeugung dieser Abhängigkeiten aus. Klingt erst einmal ein wenig nach Fabrikmuster, funktioniert allerdings viel allgemeingültiger. Damit ist die grundsätzliche Verwendung von Dependency Injection auch schon verraten. Doch wie und wann setzt man es praktisch ein?

Details »

PHP – Reflection & Annotations

Die Reflection-Klasse von PHP 5 ermöglicht es zur Laufzeit Klassen, deren Eigenschaften und Methoden zu analysieren.
Diese Funktionalität kann zum einen nützlich sein wenn man fremden Objekten, über eine API, arbeitet die nicht ausreichend dokumentiert sind. Oder wie nachfolgend beschrieben, wenn man die Annotations in den DocComments zur Laufzeit auswerten möchte um das Verhalten des Skripts zu beeinflussen.

Details »

CodeIgniter – Serverspezifische Einstellungen

Das Zend-Framework macht es mit der Application-config vor: für eine Anwendung können, je nach Umgebung (production, testing, staging), verschiedene Konfigurationseinstellungen für das Error-reporting, die Datenbankverbindung, etc. gesetzt werden.

CodeIgniter bietet dafür von Haus aus keine Lösung an, diese ist jedoch recht einfach nachzurüsten.

Details »