Extbase - Dependency Injection
Aus Wikizone
Version vom 25. Juni 2015, 15:45 Uhr von 37.49.33.84 (Diskussion)
Dependency Injection benötigst du, wenn du aus deiner Extension heraus auf die Daten anderer Extensions zugreifen willst.
Außerdem ist es nützlich, wenn du in einer Extension mit verknüpften Tabellen alle Daten einer verknüpften Tabelle ohne das Hauptobjekt zugreifen willst.
So gehts:
Dependency Injection Beispiel[Bearbeiten]
In deinem Controller füge folgendes hinzu um das Repository SomeRepository nutzen willst.Danach kannst du $this->someRepository und all seine Methoden auch in diesem Controller nutzen.
Hinweis: Nach Änderung System Cache löschen !
Dependency Injection 'TYPO3 ab 6.0[Bearbeiten]
Wechsel zur Namespace schreibweise (den Namespace kopiert man sich am besten aus der gewünschten Extension)
/**
* @var \Vendor\Extension\Domain\Repository\SomeRepository
* @inject
*/
protected $someRepository;
Dependency Injection TYPO3 = 4.7[Bearbeiten]
Keine Inject Methode mehr notwendig dafür @inject im Kommentarbereich
/**
* @var Tx_MyExtension_Domain_Repository_SomeRepository
* @inject
*/
protected $someRepository;
Dependency Injection TYPO3 vor 4.7[Bearbeiten]
Inject Funktion notwendig.
/**
* @var Tx_MyExtension_Domain_Repository_SomeRepository
*/
protected $someRepository;
/**
* Inject SomeRepository
* @param Tx_MyExtension_Domain_Repository_SomeRepository $someRepository
* @return void
*/
public function injectSomeRepository(Tx_MyExtension_Domain_Repository_SomeRepository $someRepository) {
$this->someRepository = $someRepository;
}