注釈キャッシュに 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' => 'my_memcache' を 'cache' => 'array' に変更します (私の知る限り、これがデフォルトのはずです。お役に立てば幸いです!