Integration von ZF / Doctrine2: Wo finde ich meine Models / Entities & Proxy-Klassen?

8

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.

    
Jiew Meng 24.07.2010, 12:23
quelle

3 Antworten

8

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:)

    
David 27.08.2010, 01:07
quelle
1

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.

    
Bryan M. 25.07.2010 13:07
quelle
0

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

Zend Screencasts

    
opHASnoNAME 25.07.2010 05:54
quelle