Frage

Ich versuche, den TDD-Stil in PHP zu programmieren, und einer meiner größten Stolpersteine ​​(abgesehen vom Fehlen einer anständigen IDE) ist, dass ich meinen eigenen zusammengehackten IoC-Container erstellen muss, um alle meine Scheinobjekte richtig einzuschleusen.

Hat jemand einen Ioc-Container in PHP verwendet?Alles, was ich finden konnte, ist PHP IOC auf der immer nervigen Seite phpclasses.org und es scheint fast keine Dokumentation und keine große Anhängerschaft zu haben.

War es hilfreich?

Lösung

Ich habe mit einigen DI-Frameworks für PHP gespielt, aber in der Produktion habe ich noch keines verwendet.Habe ein paar Links:

  1. http://www.stubbles.net/ Was ich denke, ist der älteste, den ich versucht habe
  2. http://php.xjconf.net/
  3. FLOW3 - Ich glaube, dass dieser ein sehr nettes Rahmen wird (seine Beta im Moment)

Sie haben erwähnt, dass Sie es für TDD verwenden würden – schauen Sie sich das also vielleicht einmal an Abhängigkeitsinjektion für Unit-Tests in PHP

Andere Tipps

Phemto wird erneut entwickelt und sieht meiner Meinung nach recht vielversprechend aus.

Einige andere ähnliche Projekte, die Sie sich vielleicht ansehen möchten:

Eimer (Haftungsausschluss:Ich bin der Hauptautor dieses Buches.)

Der PHP-Port von Picocontainer, gibt es schon lange.Ich glaube nicht, dass es aktiv weiterentwickelt wird, aber andererseits glaube ich, dass es recht stabil ist.Allerdings ist es schon lange her, seit ich es angeschaut habe.

Ein ziemlich neues Projekt, über das ich kürzlich gestolpert bin Schlau.Ich bin mir jedoch nicht sicher, wie viele Leute es nutzen.

Ich schaue auch zu spitzig, was interessant aussieht.

Vielleicht möchten Sie auch Ding (http://marcelog.github.com/Ding) ausprobieren, das Spring(tm) für Java nachempfunden ist.Es handelt sich um eine vollständige Umkehrung des Kontroll- und Abhängigkeitsinjektionscontainers, der auch AOP unterstützt

Was ist mit Symfony-Abhängigkeitsinjektion oder das PHP 5.3+-Äquivalent Komponente aus dem Symfony 2.0-Projekt.

PHP-DI ist ein weiterer Abhängigkeitsinjektionscontainer.

Es verfügt über eine Abhängigkeitsinjektion Anmerkungen Und minimale Konfiguration, Hier ist ein Beispiel:

class Foo {
    /**
     * @Inject
     * @var Bar
     */
    private $bar;
}

Es ist sehr einfach zu verwenden und lässt sich beispielsweise in das Zend Framework integrieren.

(Ja, ich arbeite an diesem Framework)

Ich habe an einem gearbeitet PHP IoC/DI-Container seit sechs Monaten Substrate genannt.Es ist immer noch in Arbeit, aber das war es schon in der Produktion eingesetzt seit anderthalb Monaten und funktioniert bisher ziemlich gut.

Substrate ist vom Spring Framework inspiriert, wurde jedoch unter Berücksichtigung der Stärken und Einschränkungen von PHP geschrieben.Die Dokumentation ist derzeit recht dürftig, aber es gibt einige Beispielcode, einschließlich eines Unit-Testing-Beispiels.Glauben Sie, dass Sie das für TDD verwenden können?

Laravel 4 verfügt über das beste IoC- und DI-Framework.Wenn es Ihnen nichts ausmacht, ein Framework zu verwenden, ist Laravel 4 die richtige Wahl

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top