Maxim Mironjuk
-
Januar 09, 2026
Autowiring löst in Symfony den großen Teil der Abhängigkeiten automatisch anhand des Typs auf und ist zurecht der Standardweg für Constructor Injection. Sobald aber mehrere Services dasselbe Interface implementieren, etwa mehrere Zahlungsgateways oder mehrere Exportformate, kann der Container nicht mehr eindeutig entscheiden, welche konkrete Implementierung gemeint ist, und wirft einen Fehler zur Compile-Zeit. Dieser Artikel zeigt, wie ServiceLocator und das Attribut AutowireLocator für genau diesen Fall einen bewussten, expliziten und weiterhin testbaren Ausweg bieten, und warum das etwas grundlegend anderes ist als der klassische, injizierte Service-Container, der als Anti-Pattern gilt.