0

我正在尝试设置一个 zf1 + 学说 mongo odm 1.0.0BETA4-DEV 项目。我正在使用https://github.com/Bittarman/zf-d2-odm分支,但是当我将教义版本从 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
4

2 回答 2

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);
于 2012-07-02T04:04:57.470 回答
1

那个方法已经不存在了。您需要Lupi_Resource_Odm::init()使用更新的 API 调用进行修改。

于 2012-06-22T21:22:36.757 回答