我正在尝试设置zf1 + doctrine mongo odm 1.0.0BETA4-DEV项目。我正在使用https://github.com/Bittarman/zf-d2-odm分支但是当我将doctrine版本从1.0.0BETA3更新为1.0.0BETA4-DEV时,我收到以下错误:
SCREAM: Error suppression ignored for
( ! ) Fatal error: Call to undefined method Doctrine\Common\Annotations\AnnotationReader::setDefaultAnnotationNamespace() in C:\htdocs\zf-d2-odm\library\Lupi\Resource\Odm.php on line 34
Call Stack
# Time Memory Function Location
1 0.0007 139368 {main}( ) ..\index.php:0
2 0.0217 659008 Zend_Application->bootstrap( ) ..\index.php:25
3 0.0217 659104 Zend_Application_Bootstrap_BootstrapAbstract->bootstrap( ) ..\Application.php:355
4 0.0217 659120 Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap( ) ..\BootstrapAbstract.php:586
5 0.0314 1127240 Zend_Application_Bootstrap_BootstrapAbstract->_executeResource( ) ..\BootstrapAbstract.php:626
6 0.0314 1127368 Lupi_Resource_Odm->init( ) ..\BootstrapAbstract.php:683
答案 0 :(得分:3)
我在最新的原始文档中找到了新的方法用法
https://github.com/doctrine/mongodb-odm-documentation
首先,您应该调用AnnotationDriver :: registerAnnotationClasses(),它将注释类注册到公共注册表。
AnnotationDriver::registerAnnotationClasses();
然后正常配置所有路径并使用工厂方法为注释驱动程序设置元数据驱动程序AnnotationDriver :: create()
$config = new Configuration();
$config->setProxyDir('/path/to/generate/proxies');
$config->setProxyNamespace('Proxies');
$config->setHydratorDir('/path/to/generate/hydrators');
$config->setHydratorNamespace('Hydrators');
$config->setMetadataDriverImpl(AnnotationDriver::create('/path/to/document/classes'));
$dm = DocumentManager::create(new Connection(), $config);
答案 1 :(得分:1)
该方法不再存在。您需要使用更新的API调用修改Lupi_Resource_Odm::init()
。