Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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 PHPCR节点和元缓存覆盖_Caching_Redis_Doctrine Odm_Symfony Cmf_Doctrine Phpcr - Fatal编程技术网

Caching PHPCR节点和元缓存覆盖

Caching PHPCR节点和元缓存覆盖,caching,redis,doctrine-odm,symfony-cmf,doctrine-phpcr,Caching,Redis,Doctrine Odm,Symfony Cmf,Doctrine Phpcr,我正在使用Symfony CMF、PHPCR和SncRedisBundle。我想将PHPCR的元数据和节点缓存添加到SncRedisBundle中 出于测试目的,我修改了文件Snc\RedisBundle\DependencyInjection\SncRedisExtension.php中的load条令函数(关于我添加的代码,请参见注释“PHPCR元数据定义覆盖”,第1行) 这适用于覆盖元数据缓存,我可以在Redis数据库中看到元数据条目被填充 现在我想覆盖节点结果缓存,但我似乎找不到一种方法来

我正在使用Symfony CMF、PHPCR和SncRedisBundle。我想将PHPCR的元数据和节点缓存添加到SncRedisBundle中

出于测试目的,我修改了文件Snc\RedisBundle\DependencyInjection\SncRedisExtension.php中的load条令函数(关于我添加的代码,请参见注释“PHPCR元数据定义覆盖”,第1行)

这适用于覆盖元数据缓存,我可以在Redis数据库中看到元数据条目被填充


现在我想覆盖节点结果缓存,但我似乎找不到一种方法来做到这一点。我找不到用于覆盖的服务定义名称。有人能为我指出正确的方向吗?

我通过深入容器并查看提供的服务,成功地覆盖了元和节点缓存。Snc\RedisBundle\DependencyInjection\SncRedisExtension.php中的代码已还原,只需修改config.yml文件

SncRedis覆盖了条令的缓存提供程序,因为我想使用相同的提供程序,所以我只需将meta设置为条令.orm.default\u metadata\u cache,将节点设置为条令.orm.default\u result\u cache

在此之后,所有条令元节点和结果缓存都被填充到我的Redis服务器中。完整配置如下:

doctrine_phpcr:
    session:
        backend:
            type: doctrinedbal
            connection: default
            caches:
                meta: doctrine.orm.default_metadata_cache
                nodes: doctrine.orm.default_result_cache
        workspace: default
        username: admin
        password: admin
    odm:
        auto_mapping: true
        auto_generate_proxy_classes: "%kernel.debug%"

是的,您基本上是在
caches
config选项中配置完整的服务名称。

但这并不明显,因为在文档中caches.meta和caches.nodes指向doctor\u cache.providers.xxx定义,参数在同一配置文件中。我不确定我是否理解。。但是如果你对如何改进文档有想法,请发送一份PR
doctrine_phpcr:
    session:
        backend:
            type: doctrinedbal
            connection: default
            caches:
                meta: doctrine.orm.default_metadata_cache
                nodes: doctrine.orm.default_result_cache
        workspace: default
        username: admin
        password: admin
    odm:
        auto_mapping: true
        auto_generate_proxy_classes: "%kernel.debug%"