Architektur und Request · Frage 1 von 12
Welche Form der Dependency Injection empfiehlt TYPO3 für eigene Services?
1 Antwort ist richtig. Einfach
Lösung anzeigen
Lösung
- C Constructor Injection: Abhängigkeiten werden als Parameter des Konstruktors angegeben
Erklärung
TYPO3 nutzt den Service-Container von Symfony, der Abhängigkeiten automatisch erkennt (Autowiring) und beim Erzeugen eines Services übergibt. Empfohlen ist Constructor Injection, zum Beispiel public function __construct(private readonly ProductRepository $productRepository) {}: Die Klasse zeigt so auf einen Blick, was sie braucht, und lässt sich im Test leicht mit Ersatzobjekten bestücken. inject*()-Methoden sind nur für abstrakte Basisklassen gedacht, deren Konstruktor Unterklassen nicht belasten soll. GeneralUtility::makeInstance() versteckt die Abhängigkeiten im Code und ist für Services nur noch der Ausnahmefall.