TYPO3 Adventskalender 2025
19.12.2025: Symfony Service Locators und AutoWiring
TYPO3 liebt Symfony: Dieses Komponenten-Framework bietet auf qualitativ höchster Ebene eine Abstraktion für sehr viele Räder, die man nicht neu erfinden muss. Von der Symfony “Dependency Injection” (DI) Implementation profitieren TYPO3 und unser Extensions in höchstem Maße.
Als Komfort-Maßnahme wurde in TYPO3 14.0 die Nutzung DI in großem Maße vorangetrieben, was vor allem in stateless Services resultiert, und der Nutzung von Attributen wie `#[AsCommand]`, `#[AsAlias] und `#[AsEventListener]` zur schnelleren Deklaration von wiederkehrenden Services.
TYPO3 bietet intern noch diverse “alte” Registries an, die man heutzutage aber mit Symfony Service Locators umsetzen kann, bzw. auto-wiring/auto-configuration. Daher wurde folgendes umgebaut:
- Statt `AvatarProviderInterface` nun `#[AsAvatarProvider]`
- Statt Registrierung von Metadata Extraktoren in der `ext_localconf` passiert dies nun automatisch durch ServiceLocator Iteration von implementierten `ExtractorInterface`-Klassen
- Statt Registrierung von BackendLayout Data Providern in `ext_localconf` nun `DataProviderInterface`-Locator
- RouterConfigurator DI via Autoconfigure
Auch für eigenen Code lohnt es sich sehr, diese Patterns zu adaptieren. Die oben aufgeführten Links zu den TYPO3-Core Changes zeigen sehr schön auf, welche Umstellungen nötig sind.