Ich würde meine Modelle nicht direkt in /your-application/root
setzen. Dies würde gegen die empfohlene Verzeichnisstruktur von ZF2 verstoßen. Stattdessen würde ich ein Verzeichnis /FooModule/src/FooModule/Model
erstellen und all meine Modelle in diesem Ordner mit der Verwendung von namespace FooModule\Model
im Model-Klassen verwenden.
Ein weiteres Detail ist; zwei verschiedene Verzeichnisse für dasselbe Namespace anzugeben ist eine absolut schlechte Idee. Dies würde gegen den PSR-4 Autoloading Standard und viele Open-Source-Bibliotheken & Frameworks einschließlich dem Zend Framework 2 verstoßen, die stark von diesem Standard abhängen.
Ich würde das Problem aus einem anderen Blickwinkel betrachten. Einfach fragen: Warum muss ich einen meiner Namespaces auf zwei verschiedene Verzeichnisse verweisen?
Ich denke eigentlich, dass Sie mit "Propel generierte Modelle" tatsächlich "Domänenentitäten" meinen. Wenn das korrekt ist (ich meine Bookstore
) ist eine Entität anstatt ein Modell. Sie können auch dieses großartige Antwort lesen.
Sie können also versuchen, einen Entity
Namespace in Ihrem Application
(oder was auch immer) ZF2-Modul zu erstellen und Ihre Entity-Klassen unter einem Unter-Namespace darin zu schreiben. Dies ist völlig gültig. Zum Beispiel:
Application\src\Entity\Bookstore.php - Namespace ist Application\Entity
Application\src\Entity\Book.php - Namespace ist Application\Entity
Application\src\Entity\Author.php - Namespace ist Application\Entity
Oder dieses Szenario ist auch gültig (Bookstore ist ein Modul):
Bookstore\src\Entity\Book.php - Namespace ist Bookstore\Entity
Bookstore\src\Entity\Author.php - Namespace ist Bookstore\Entity
In beiden Beispielszenarien teilen Book.php
und Author.php
Ihren automatisch generierten Domänen-Entitäten den gleichen Namespace, ohne die ZF2- oder PSR-4-Autoloading-Mechanismen zu beeinträchtigen.