我正在使用Doctrine2和ZF2(Zend Framework2)。
根据{{3}}
我在Doctrine中使用注释,我需要知道是否默认注释是否被缓存,如果是,那么,如果不是,我将如何缓存它们。
我知道Symfony2 / Doctrine2缓存注释数据,我该如何使用Zend2?
答案 0 :(得分:2)
使用memcache进行注释缓存的示例是(module.config.php):
'service_manager' => array(
'factories' => array(
'doctrine.cache.my_memcache' => function(\Zend\ServiceManager\ServiceManager $sm) {
$cache = new \Doctrine\Common\Cache\MemcacheCache();
$memcache = new \Memcache();
$memcache->connect('localhost', 11211);
$cache->setMemcache($memcache);
return $cache;
}
)
这为doctrine创建了基本的memcache对象。之后,你必须告诉doctrine将这个缓存用于这样的注释(同样,module.config.php):
'doctrine' => array(
'driver' => array(
__NAMESPACE__ . '_driver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'my_memcache', // <- this points to the doctrine.cache.my_memcache factory we created above
'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
),
'orm_default' => array(
'drivers' => array(
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
),
),
),
),
或者,您可以使用doctrine的数组缓存。只需更改'cache'=&gt; 'my_memcache'到'cache'=&gt; 'array'(据我所知,这应该是默认值。 希望有所帮助!