我不知道如何将 Zend Framework 和 Doctrine2 粘合在一起,但如果您使用流行的 Bisna 粘合(非常酷),您可以在 application.ini 中设置多个映射目录。仔细查看以下 ini 设置:
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.adapterClass = "Doctrine\ORM\Mapping\Driver\AnnotationDriver"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.mappingNamespace = "Core\Entities"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.mappingDirs[] = APPLICATION_PATH "/modules/Core/Entities"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.annotationReaderClass = "Doctrine\Common\Annotations\AnnotationReader"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.0.annotationReaderCache = default
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.1.adapterClass = "Doctrine\ORM\Mapping\Driver\AnnotationDriver"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.1.mappingNamespace = "CMS\Entities"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.1.mappingDirs[] = APPLICATION_PATH "/modules/CMS/Entities"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.1.annotationReaderClass = "Doctrine\Common\Annotations\AnnotationReader"
resources.doctrine.orm.entityManagers.default.metadataDrivers.drivers.1.annotationReaderCache = default
像上面这样的东西将完成你想要的。如果希望能够完全自动执行此操作,我认为您必须修补 Bisna\Doctrine\Container 类。例如,查看定义的模块检查是否存在实体目录并将其添加到学说实体管理器中。
Bisna
如果您不知道 Bisna 是什么,这是一个小型库,可让您轻松地将 Doctrine2 和 Zend Framework 1“粘合”在一起。
通过观看此视频,您应该很容易理解如何集成 Doctrine2。
http://www.zendcasts.com/unit-testing-doctrine-2-entities/2011/02/
请注意,视频中使用的 Bisna 版本仅支持 Doctrine 2.0 而不是 2.1,在这种情况下您应该使用这个:https ://github.com/guilhermeblanco/ZendFramework1-Doctrine2