Wenn ich Zend Framework 1.10 mit Doctrine 2 integriere, wo lege ich meine Doktrinmodelle / Entitäten und Proxies ab? Ich dachte an die Verzeichnisse /application
oder /library
. Wenn ich das Verzeichnis /library
tho einfüge, stört es die Autoloading-Klassen von ZF, da die Klassen PHP-5.3-Namespaces und PEAR-Namespaces verwenden.
Ich arbeite an einer Anwendung, die Doctrine 2 auch mit ZF1.10 integriert. Sie müssen den Doctrine-Auto-Loader überhaupt nicht verwenden.
1) Fügen Sie in Ihrer application.ini-Datei die folgende Zeile hinzu (vorausgesetzt, Sie haben Doctrine in Ihrem Bibliotheksordner installiert (wie der Zend-Ordner):
%Vor%2) Erstellen Sie eine Doktrin oder Entitymanager-Ressource. In Ihrer Ini-Datei:
%Vor%3) Als nächstes müssen Sie es neu starten. Ich habe eine Ressourcenklasse in meinem Ressourcenordner hinzugefügt. Stellen Sie sicher, dass Sie den Ordner in Ihrer Ini-Datei zuordnen:
%Vor%Dann deine Ressourcenklasse ...
%Vor%Der Doktrin 2 Entity Manager ist jetzt für Ihre Anwendung verfügbar. In Ihrem Controller können Sie es so greifen:
%Vor%Ich bin mir sicher, dass dies jemandem helfen wird:)
Theoretisch könnten Sie das dann irgendwo hinstellen, solange die Namespaces korrekt aufgelöst werden.
Ich würde diese Struktur vorschlagen:
%Vor%Laden Sie die 'MyApp' mit Doctrines ClassLoader. Ich hatte keine Konflikte mit dem Doctrine Loader mit dem Zend Loader (wenn Sie Klassen haben, die die PEAR-Konvention in Ihrem Namespace-Ordner verwenden, müssen Sie immer noch den Zend Loader verwenden).
Denken Sie daran, dass "Modelle" mehr als nur Ihre Entity-Klassen sein können. Meine Modellschicht besteht aus Schnittstellen, Fabriken, Validatoren und Serviceobjekten. Zu diesem Zweck sollte alles, was anwendungsspezifische Geschäftslogik ist, wahrscheinlich in den Modellordner gehen.
Ich würde die Models in das gleiche Verzeichnis stellen, wo das "normale" Zend Framework das Leben modelliert. /models
Sie können Doctrine anweisen, die Modelle an dieser Stelle zu generieren und ihnen "Default_Model"
oder was auch immer voranzutreiben.
Schaut euch einen von John Lebenshold Screencasts über Zend Framework and Doctrine an
Tags und Links php namespaces doctrine zend-framework