… machen wir heute mal, weil die Sandbox komisch ist mit den vielen (ärm – 2) redundanten /vendor und /wasweißich-Verzeichnissen.
Also, bauen wir die Sandbox mal nach:
…dev, tech problems and solutions.
… machen wir heute mal, weil die Sandbox komisch ist mit den vielen (ärm – 2) redundanten /vendor und /wasweißich-Verzeichnissen.
Also, bauen wir die Sandbox mal nach:
PHPUnit hat coolerweise eine Extension für Selenium Tests.
Dafür braucht man noch den PHP Client für die Selenium Remote Control.
pear install Testing_Selenium-0.4.3
Bei mir auf Debian Lenny, bzw. Mac OSX musste ich noch den include_path dafür anpassen,
damit phpunit Testing/Selenium.php gefunden hat.
Damit kann man mit PHP komfortabel einen Selenium Test Server über die Selenium RC ansprechen,
der dann beliebige Browser für functional Tests benutzt.
Der Selenium Server ist auch im Prinzip schnell installiert
und lokal ist das ganze einigermaßen unproblematisch, weil man ja schon mal die Browser seines OS zur Verfügung hat.
In einem Continuous Integration Setup möchte man aber vielleicht Selenium lieber auf einem Web Server laufen lassen.
Da sieht es dann erstmal weniger gut aus mit Browser executables.
Was also tun?
Unter Dependency Injection versteht man heute nicht nur ein einfaches Entwurfsmuster, sondern vor allem Framework-gestützte Mechanismen, die den konkreten Implementierungsaufwand verringern (Entwicklungszeitoptimierung), dem Entwickler bessere Übersicht über Abhängigkeiten zu schaffen (Applicationdesignoptimierung) und die Anzahl der Instanzen gleichen Prototyps zu minimieren (Performanceoptimierung).
Heute möchte ich einen alternativen, vielleicht pragmatischeren Ansatz als der andererer populärer Implementierungenn herbeispinnen, um Dependency Injection (DI) in PHP 5.3 zu realisieren.
Continue reading “Dependency Injection mit PHP 5.3, Runkit-Erweiterung und Doctrine 2-Annotationen”