[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TYPO3-german] Frage zu Dependency Injection



Hi T. Schnabel,

T. Schnabel wrote:

> Nach deinen Aussagen muss ich also zuerst eine Instanz über den
> Object-Manager erstellen, um sie dann per @inject zu verwenden. Das
> entspricht meiner Meinung nach nicht der Idee von DI.

Nein. In den Klassen, in welchen du @inject verwenden möchtest, muss das 
Objekt durch den ObjectManager gebaut werden.
TYPO3 CMS hat zwei Factory Methoden. Die neuere ObjectManager->get() und das 
alte GeneralUtility::makeInstance().
Der ObjectManager wird nur innerhalb des Extbase Kontextes verwendet. Im 
einem Controller, welcher von ActionController erbt, ist er auch immer unter 
$this->objectManager verfügbar.

In einem Viewhelper ist der ObjectManager genauso verfügbar, solange er von 
AbstractViewhelper erbt:
http://api.typo3.org/typo3cms/master/html/class_t_y_p_o3_1_1_c_m_s_1_1_fluid_1_1_core_1_1_view_helper_1_1_abstract_view_helper.html
 
> Außerdem interessiert mich, an welcher Stelle z.B. die Controller
> erstellt/registriert werden (Hook, ClassLoader?), dann könnte man an
> dieser Stelle mal recherchieren. Leider ist die Doku vom Typo an dieser
> Stelle auch recht allgemein gehalten.

Die Controller werden per Convention aus Classes/Controller geladen. Das 
erste Segment wird immer ignoriert, das zweite Segment das Namespaces ist 
dabei immer der Extension Name und ab dem dritten Segment entspricht der 
Namespace dem Pfad unter Classes/.

Grüße
-- 
Philipp Gampe – PGP-Key 0AD96065 – TYPO3 UG Bonn/Köln
Certified Integrator – Active contributor TYPO3 CMS
TYPO3 .... inspiring people to share!

_______________________________________________
TYPO3-german mailing list
[email protected]
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german