Extbase - Dependency Injection: Unterschied zwischen den Versionen
Aus Wikizone
(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…“) |
|||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 5: | Zeile 5: | ||
So gehts: | So gehts: | ||
=== Dependency Injection Beispiel === | === Dependency Injection Beispiel === | ||
| − | In deinem Controller füge folgendes hinzu um das Repository '''SomeRepository''' nutzen willst. | + | 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==== | ====Dependency Injection 'TYPO3 ab 6.0==== | ||
| + | Wechsel zur Namespace schreibweise (den Namespace kopiert man sich am besten aus der gewünschten Extension) | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
/** | /** | ||
| Zeile 16: | Zeile 20: | ||
====Dependency Injection TYPO3 = 4.7 ==== | ====Dependency Injection TYPO3 = 4.7 ==== | ||
| − | + | Keine Inject Methode mehr notwendig dafür @inject im Kommentarbereich | |
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
/** | /** | ||
| Zeile 26: | Zeile 30: | ||
==== Dependency Injection TYPO3 vor 4.7 ==== | ==== Dependency Injection TYPO3 vor 4.7 ==== | ||
| + | Inject Funktion notwendig. | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
/** | /** | ||
| Zeile 41: | Zeile 46: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | |||
| − | |||
| − | |||
Aktuelle Version vom 25. Juni 2015, 15:45 Uhr
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;
}