Dependency Injection in Symfony2

DI-Symphony
Kommentare

Mit Symfony 2 hat ein Konzept auf breiter Front Einzug gehalten, das zwar nicht neu ist, in der PHP-Welt aber bisher eher stiefmütterlich behandelt wurde: Dependency Injection. Es löst durch konsequente Entkopplung der Komponenten innerhalb einer Anwendung gleich eine Handvoll Probleme. Wir schauen uns den Symfony Dependency Injection Container des Frameworks näher an.

Dependency Injection löst durch die konsequente Entkopplung der Komponenten innerhalb einer Anwendung gleich eine Handvoll Probleme. Neben der einfachen Erweiterbarkeit und dem simplen Austausch einzelner Teile der Applikation ist die Technik ein Teil des SOLID-Prinzips und hilft uns beim Entwurf sauber testbarer, einfach zu wartender Software. Beschäftigt man sich zum ersten Mal mit dem Thema, hat das Prinzip verstanden und möchte es auf eine erste größere Applikation anwenden, ergibt sich auf den ersten Blick jedoch ein Nachteil: Das Setup der Objektgraphen wird schnell sehr komplex, große Blöcke im Code sind allein dem „Verdrahten“ unserer Objektinstanzen gewidmet. Dazu kommt ein organisatorisches Problem. Will man nicht alle Objekte bei jedem Request instanziieren und so Ressourcen im großen Stil verschwenden, wird es schnell recht komplex, jeweils nur die erforderlichen Teile zu laden. Beides lässt sich mithilfe eines Dependency Injection Containers lösen. Er bietet uns verschiedene Möglichkeiten, das Setup der Services und ihrer Abhängigkeiten zu konfigurieren, ohne tatsächlich Instanzen der Objekte zu erzeugen. Diese werden später erst bei Abruf eines Services ressourcenschonend instanziiert. Außerdem bietet uns der Container verschiedene Möglichkeiten zur Manipulation der Servicekonfiguration.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -