Dependency Injection

In der Java-Welt schon lange bekannt, halten Entwurfsmuster immer mehr Einzug in die PHP-Welt. Und das ist auch gut so. CMS-Systeme, Webshops und auch die in den letzten Jahren neu hinzugekommenen PHP-Frameworks werden immer komplexer, die damit entwickelten Applikationen immer umfangreicher. Umso wichtiger ist es, dass man Entwurfsmuster (Design Patterns) gezielt einsetzt um die Applikation sinnvoll zu strukturieren.

Dependency Injection verfolgt dabei den Ansatz, Abhängigkeiten aufzulösen und flexibel zu gestalten. Abhängigkeiten (z.B. von einem Fachobjekt und dem Datenbankobjekt) werden im wahrsten Sinne des Wortes injiziert: das Datenbankobjekt wird in das Fachobjekt "hineingespritzt". Dadarch wird es auch vereinfacht sogenannte Mock-Objekte (z.B. im Rahmen eines Unit-Tests oder beim Staging) anstelle eines scharfen oder teuren Objekts zu nutzen.

Fabien Potencier, unter anderem Gründer des Symfony-Frameworks, hat eine wirklich sehr gut verständliche Einführung in die Thematik der Dependency Injection veröffentlicht. Auch Anonyme Funktionen /Lambdas werden besprochen, ein DI Container wird entworfen, Closures eingebunden. Natürlich wird auch der eigene DI Container Pimple beworben :-)

Tags: