如何在使用Zend Framework 2和Doctrine 2的项目中启用缓存?应该启用哪种缓存,Doctrine缓存还是Zend缓存?以下是我尝试过的方法,但在执行时间上没有看到任何区别。需要编辑
module\Application\config\module.config.php
文件。 'doctrine.cache.my_memcache' => function ($sm) {
$cache = new \Doctrine\Common\Cache\MemcacheCache();
$memcache = new \Memcache();
$memcache->connect('localhost', 11211);
$cache->setMemcache($memcache);
return $cache;
},
'doctrine.cache.apc' => function ($sm){
$apc = new \Doctrine\Common\Cache\ApcCache();
return $apc;
},
// Doctrine config
'doctrine' => array(
'driver' => array(
__NAMESPACE__ . '_driver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity'),
),
'orm_default' => array(
'drivers' => array(
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
),
)
),
'configuration' => array(
'orm_defaults' => array(
'metadata_cache' => 'apc',
'query_cache' => 'apc',
'result_cache' => 'my_memcache',
)
)
),
任何帮助、想法或解释都会受到欢迎。谢谢。
$config = $this->getServiceLocator()->get('doctrine.configuration.orm_default');
和$cache = $config->getQueryCacheImpl();
。 - edigu