有人知道如何在zf2项目中缓存doctrine2实体。我找不到解释这个的教程或网站。我无法找到任何信息来定义实体文件缓存。
你们有人得到了工作链接或例子。
由于
答案 0 :(得分:3)
您有两个选择
作为第二版的一个例子,我在模块中有类似下面的配置(实际上分布在各种配置文件中,所以我不能保证复制粘贴逐字会起作用)。
'services' => array(
'factories' => array(
// Wraps a ZF2 cache storage in a Doctrine compatible way
'doctrine.cache.zend.static.local' => function ($services) {
return new ZendStorageCache($services->get('cache.static.local'));
},
),
'caches' => array(
// A ZF2 cache, can be configured as you like
'cache.static.local' => array(
'adapter' => 'xcache',
'plugins' => array(
'exception_handler' => array(
'throw_exceptions' => false,
),
'serializer',
),
),
),
'doctrine' => array(
'configuration' => array(
'orm_default' => array(
'metadata_cache' => 'zend.static.local',
'query_cache' => 'zend.static.local',
),
),
),
请注意,Doctrine会自动添加前缀" doctrine.cache。"到你配置的缓存服务的名称,所以我们配置" metadata_cache" to" zend.static.local",实际的缓存服务必须命名为" doctrine.cache.zend.static.local"。显然你可以把它们叫做你想要的,但是你需要将这个前缀添加到你称之为的地方。
答案 1 :(得分:3)
要激活文件缓存,您只需添加module.config.php
即可'doctrine' => array(
'configuration' => array(
'orm_default' => array(
'metadata_cache' => 'filesystem',
'query_cache' => 'filesystem',
)
),
)
它将在data / DoctrineModule / cache文件夹中自动创建缓存
这是我对ZF 2.2.4 + Doctrine 2的完整学说配置
'doctrine' => array(
'driver' => array(
'application_entities' => array(
'class' =>'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/Modulename/Entity')
),
'orm_default' => array(
'drivers' => array(
'Modulename\Entity' => 'application_entities'
),
)
),
'configuration' => array(
'orm_default' => array(
'metadata_cache' => 'filesystem',
'query_cache' => 'filesystem',
)
),
),