Zum Inhalt springen

rekursive Dependency Injection

Erstellt am 30. Januar 2012 · 1 Antwort · letzte Antwort am 31. Januar 2012

Tags: Frage

BFSven ·

Moin,

dass DI bis 4.5 nur in Controllern funktioniert hatten wir mal in irgendeinem Beitrag. Also dachte ich mir, ich setze den in einem Repo zu verwendende Repository einfach in der inject-Methode im Controller

/**
 * @param Tx_MyExt_Domain_Repository_VisitorRepository $visitorRepository
 */
public function injectVisitorRepository(Tx_MyExt_Domain_Repository_VisitorRepository $visitorRepository) {
	$this->visitorRepository = $visitorRepository;
	$this->visitorRepository->injectUserAgentRepository($this->userAgentRepository);
}

Das VisitorRepository hat natürlich eine entsprechende Methode bekommen und der Controller hat auch eine injectUserAgentRepository. Trotzdem kommt der Fehler

PHP Catchable Fatal Error: Argument 1 passed to Tx_MyExt_Domain_Repository_VisitorRepository::injectUserAgentRepository() must be an instance of Tx_MyExt_Domain_Repository_UserAgentRepository, null given

Funktioniert mein Ansatz des rekursiven DIs etwa nicht?

BFSven ·

Funktionier doch, man muss die properties nur in der richtigen Reihenfolge definieren (ist wirklich so, habs getestet)