Extbase - Dependency Injection

Aus Wikizone
Version vom 25. Juni 2015, 15:41 Uhr von 37.49.33.84 (Diskussion) (Die Seite wurde neu angelegt: „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 d…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

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

In deinem Controller füge folgendes hinzu um das Repository SomeRepository nutzen willst.

Dependency Injection 'TYPO3 ab 6.0

/**
 * @var \Vendor\Extension\Domain\Repository\SomeRepository
 * @inject
 */
protected $someRepository;

Dependency Injection TYPO3 = 4.7

/**
 * @var Tx_MyExtension_Domain_Repository_SomeRepository
 * @inject
 */
 protected $someRepository;

Dependency Injection TYPO3 vor 4.7

/**
 * @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;
}

Jetzt kann man $this->someRepository mit all seinen Methoden auch in diesem Controller nutzen.

Hinweis: Nach Änderung System Cache löschen !