ZendFramework2 + Doctrine ODM模块启用元数据缓存

时间:2013-05-31 05:59:50

标签: mongodb doctrine-orm zend-framework2

我正在使用ZF2和Doctrine的ODM模块。

问题:

在每个请求中,我的代理和水合器正在重新生成。这会导致随机错误。有关详细信息,请参阅https://github.com/doctrine/mongodb-odm/issues/484

在Doctrine关于元数据缓存的文档之后http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/metadata-drivers.html

我明确将ApcCache设置为默认的元数据缓存实现。

调试我的文档管理器我得到以下内容:

[mongoCmd] => $
[retryConnect] => 0
[retryQuery] => 0
[autoGenerateProxyClasses] => 0
[proxyDir] => data/DoctrineMongoODMModule/Proxy
[proxyNamespace] => DoctrineMongoODMModule\Proxy
[autoGenerateHydratorClasses] => 0
[hydratorDir] => data/DoctrineMongoODMModule/Hydrator
[hydratorNamespace] => DoctrineMongoODMModule\Hydrator
[defaultDB] => 
[metadataCacheImpl] => Doctrine\Common\Cache\ApcCache Object

因此,自动生成代理和自动生成加油器都关闭,ApcCache对象显然设置为metadataCacheImplementation,但不是从缓存的类中读取元数据,而是在每个后​​续请求中重新生成类。

关于如何强制Doctrine从缓存中读取元数据而不是在每个请求上创建新类的任何想法。

感谢。

马尔科

0 个答案:

没有答案