Archiv für 11.2009

Custom Factories RFC für den PHP Kern

geschrieben am 22.11.2009 von Stephan Hochdoerfer

Dank Robert Lemke vom Typo3 Projekt gibt es seit einigen Tagen einen RFC für sog. Custom Factories für PHP. Die grundsätzliche Idee des RFC ist es via SPL die Objekterzeugung beeinflussen zu können, ähnlich wie es bsp. mit spl_autoload möglich ist eigene Klassenloader zu definieren. Er möchte damit Einschränkungen in Legacy Bibliotheken aufbrechen die es aufgrund von fest verdrahteten Abhängigkeiten nicht möglich machen eigene Komponenten innerhalb der Legacy Bibliothek zu verwenden. Im aufgeführten Beispiel wird dies gut anhand eines Logger-Beispiels aufgezeigt. Im Grunde halte ich die Idee für recht interessant. Ich denke viele Entwickler sind in der Vergangenheit über das Problem gestoßen dass sich Frameworks oder Bibliotheken von Drittanbietern an machen Stellen nicht optimal in die eigenen Anwendungsstrukturen einbinden lassen konnten bzw. es nur sehr umständlich möglich war eine Integration zu erreichen.

Etwas verwundert bin ich allerdings über die Beispiele mit der ObjectFactory, so schreibt er “If the mechanism of Dependency Injection is consequently used, this results in a lot of additional typing and many classes will need the ObjectFactory getting injected by the surrounding framework” . Dem kann ich leider nicht zustimmen. Das verwendete Framework sollte dem Entwickler alle Injection-Arbeiten abnehmen und statt der ObjectFactory die notwendigen Referenzen auf die real benötigen Klassen übergeben. Der Domaincode sollte m.E. so gut wie frei von Abhängigkeiten zu Frameworkklassen sein. Ich möchte weder in meinem Programmcode Objekte mit dem new Operator erzeugen noch abhängig zu Factories sein die das ganze für mich erledigen. Des weiteren halte ich es für extrem wichtig die Objektkonfiguration von der Implementierung zu trennen, denn nur so erreicht man eine maximal mögliche Wiederverwendung. Annotations im Programmcode oder das automatische Finden der Abhängigkeiten anhand von implementierten Interfaces scheint mir keine sinnvolle Umsetzung von DI zu sein.

PHP Code mit xtext generieren

geschrieben am 02.11.2009 von Stephan Hochdoerfer

Gefunden via Twitter: Nils Hartmann beschreibt in seinem Blog wie man mittels Eclipse Xtext und Xpand PHP Code anhand einer domänenspezifischen Sprache (DSL) generieren kann. Der leider etwas knappe Artikel macht Appetit auf mehr und zeigt auf wie man durch eine DSL den Arbeitsablauf optimieren und Routinearbeiten automatisiert durchführen lassen kann. Ich werde mir XText einmal ganuer ansehen und prüfen inwiefern wir dieses Programm in unsere Arbeitsabläufe integrieren können.