Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 如何在DoctrineORMModule中将实体配置为二级缓存的一部分?_Caching_Doctrine Orm_Zend Framework2_Memcached - Fatal编程技术网

Caching 如何在DoctrineORMModule中将实体配置为二级缓存的一部分?

Caching 如何在DoctrineORMModule中将实体配置为二级缓存的一部分?,caching,doctrine-orm,zend-framework2,memcached,Caching,Doctrine Orm,Zend Framework2,Memcached,我试图在ZendFramework2项目的DoctrineORM模块中配置memcached以执行缓存查询,结果和元数据遵循本教程 在module.config.php中 <?php return array( 'service_manager' => array( 'invokables' => array( // ... ), 'factories' => array(

我试图在ZendFramework2项目的DoctrineORM模块中配置memcached以执行缓存查询,结果和元数据遵循本教程 在module.config.php中

<?php

return array(
    'service_manager' => array(
        'invokables' => array(
//            ...
        ),
        'factories' => array(
            'doctrine.cache.my_memcached' => function ($sm) {
                $cache = new \Doctrine\Common\Cache\MemcachedCache();
                $memcache = new Memcached();
                $memcache->addServer('localhost', 11211);
                $cache->setMemcached($memcache);
                return $cache;
            },
            'MemcachedFactory' => \Application\Service\Cache\MemcachedFactory::class,
        )
    ),
    'doctrine' => array(
        'cache' => array(
            'memcached' => array(
                'namespace' => '_Doctrine',
                'instance' => 'MemcachedFactory',
            ),
        ),
        'configuration' => array(
            'orm_default' => array(
                'query_cache' => 'memcached',
                'result_cache' => 'memcached',
                'metadata_cache' => 'memcached',
                'hydration_cache' => 'memcached',
                'second_level_cache' => [
                    'enabled' => true,
                    'default_lifetime' => 200,
                    'default_lock_lifetime' => 500,
                    'file_lock_region_directory' => './data/cache',
                    'regions' => [
                        'My\FirstRegion\Name' => [
                            'lifetime' => 800,
                            'lock_lifetime' => 1000
                        ],
                        'My\SecondRegion\Name' => [
                            'lifetime' => 10,
                            'lock_lifetime' => 20
                        ],
                    ],
                ],
            ),
        ),
        'driver' => array(
            '_driver' => array(
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                'cache' => 'my_memcached',
                'paths' => array(__DIR__ . '/../src/Application/Entity')
            ),
            'orm_default' => array(
                'drivers' => array(
                    'Application\Entity' => '_driver'
                ),
            ),
        ),
    ),
);
之后,我得到一个
Doctrine\ORM\Cache\CacheException
留言:

实体“Application\Entity\User”未配置为二级缓存的一部分


谁能建议我解决这个问题?

将此添加到用户类:

 * @ORM\Cache(usage="NONSTRICT_READ_WRITE")

请添加有关memcached配置的更多信息我在上面添加了有关memcached配置的信息
 * @ORM\Cache(usage="NONSTRICT_READ_WRITE")