2012-06-22 17 views
0

我想設置一個zf1 +準則mongo odm 1.0.0BETA4-DEV項目。我使用https://github.com/Bittarman/zf-d2-odm分支,但是當我更新版本學說從1.0.0BETA3到1.0.0BETA4-DEV,我得到以下錯誤:ZF1 + Doctrine 2 ODM:調用未定義的方法AnnotationReader :: setDefaultAnnotationNamespace

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 

回答

3

我的最新的原始文檔

https://github.com/doctrine/mongodb-odm-documentation 

首先,你應該叫AnnotationDriver :: registerAnnotationClasses(),其登記註解類的普通註冊表中找到了新方法的使用。

AnnotationDriver::registerAnnotationClasses(); 

然後通常配置的所有路徑,並設置與工廠方法元數據驅動的註解驅動AnnotationDriver ::創建()

$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); 
+0

這並沒有爲我解決它。 – CommaToast

1

這種方法存在犯規了。你需要修改Lupi_Resource_Odm::init()更新的API調用。

+0

有什麼新方法?你知道任何更新的分支? – dextervip

+0

我不知道之前從未使用過這個庫。如果爲ZF創建庫的人沒有更新它,那麼您必須自己更新才能使用新的API,或像以前一樣使用兼容版本的ODM。 – prodigitalson

相關問題