Ich versuche, ein einfaches MVC-Skelett zu erstellen, und ich stehe mit Abhängigkeiten fest.
Das habe ich jetzt:
%Vor%Die Frage ist: Wie kann ein Objekt auf irgendeine Abhängigkeit zugreifen?
Einige Beispiele:
Die einzige Möglichkeit, die mir einfällt, ist die Registry zu benutzen, aber das verstößt gegen das Gesetz von Demeter (fragen Sie, was Sie wirklich brauchen).
Sie schreiben facilities (excellen Artikel). Das könnte total langweilig sein (wie im Artikel erwähnt), also könnte man ein DI-Framework wie zum Beispiel verwenden:
Ich möchte auch darauf hinweisen, dass Miskos Blog sehr interessant ist und viele gute Reads zum richtigen Testen enthält. Besonders das Handbuch zum Schreiben testbaren Codes muss gelesen werden.
PS: Ich denke, Sie sollten Fabriken schreiben, weil PHP eine Skriptsprache ist und Sie sollten so wenig Code wie möglich verwenden, um Ihre Website schnell zu machen. Das ist das Problem mit einigen PHP-Frameworks .
Rasmus Ledorf (PHP Erfinder) Zitat:
Viele Frameworks können sehr gut aussehen auf den ersten Blick ansprechend, weil sie scheinen Web-Anwendungen zu reduzieren Entwicklung zu ein paar trivialen Schritte, die zu einer Code-Generierung führen und oft automatische Schemaerkennung, aber die gleichen Verknüpfungen sind wahrscheinlich seien Sie auch Ihre Engpässe erreiche diese Einfachheit durch Opfern Flexibilität und Leistung. Nichts wird deine Bewerbung für erstellen Sie, egal was es verspricht. Sie werden es bauen müssen dich selber. Anstatt mit zu beginnen die Fehler in einigen fremden beheben Rahmen und Refactoring alle Dinge, die nicht auf dich zutreffen Umwelt verbringen Sie Ihre Zeit mit dem Aufbau eines schlankes und wiederverwendbares Muster, das passt Ihre Anforderungen direkt. Schlussendlich Ich denke, du wirst das finden homegrown kleiner Rahmen hat sich gerettet Sie Zeit und Ärger und Sie enden mit einem besseren Produkt.
Sie können einen Abhängigkeitsinjektionscontainer wie Symfony DIC verwenden. Sie definieren Ihre Objekte, Konfiguration und Verdrahtung innerhalb des Containers, der dann für die Instanziierung zuständig ist.
Tags und Links php model-view-controller dependency-injection