exTSend_DIContainer – DependencyInjection
10. November 2009 20:34

Für einen neuen Ansatz in Sachen Models im Zend Framework habe ich mich mal ein bisschen mit DependencyInjection und Lazy Loading beschäftigt...Rausgekommen ist dabei eine erste Version des exTSend_DIContainer.
Ist schon ganz gut gelungen, wie ich finde.
Das Schöne daran: ich kann meine Objekte wie z.B. Services (UserManagement), Zend_Db etc. direkt in den Resource-Plugins (für's Bootstrappen) definieren, sie werden aber noch nicht geladen/initialisiert.
Erst wenn ich mir, wie ich es nenne, eine Komponente "hole" wird der ganze benötigte "Rattenschwanz" geladen.
Warum das so toll ist? Ganz einfach: Wozu soll ich eine DB-Verbindung aufbauen, wenn diese für den Request nicht benötigt wird?
Sollte sie doch an irgend einer Stelle benötigt werden mache ich ein einfaches exTSend_DIContainer::getComponent('database') (sofern ich die Komponente "database" genannt habe) und bekomme ein funktionsfähiges Zend_Db-Objekt zurück.
 
Da ich noch nicht ausreichend Zeit zum Testen hatte stell ich den Code einfach mal so zur Diskussion, ohne Anspruch auf Vollständigkeit oder Funktionsfähigkeit.
Wer es nützlich findet darf es einsetzen, sollte aber bedenken, dass er mal drüber schauen sollte, ob alles "OK" ist.
Wenn ich mal wieder Zeit finde wird das Ganze auch endlich mal auf exTSend.com aktualisiert...wenn...ja wenn...
 
Ich würde mich jedenfalls über ein wenig Feedback freuen - so denn überhaupt jemand den leider noch immer lahmenden Blog liest...ich gelobe Besserung in naher Zukunft :)
 
Download: exTSend-DIContainer


Veröffentlicht in CodeSnippets, exTSend.com
Login
Kategorien
Archiv
Links