运行缓存时添加配置:清除

时间:2013-12-27 02:50:17

标签: symfony caching

我寻找将更多参数注入symfony配置缓存的方法。目前,我在kernel.cache_warmer中使用services.yml挂钩到我的类来生成目录中的另一个yml文件。然后,它将包含在symfony配置缓存中,是否有任何可能的方法将变量注入生成的配置缓存而无需创建Yml文件?

基本上,我想在运行app/console cache:clear时每次都更改缓存键。这是我的服务,

services.yml

imports:
    - { resource: version.yml }

services:
    cacheManager:
        class:        "%cacheManager.class%"
        calls:
        - [ setCachePrefix, ["%memcache.deploymentPrefix%"]]

    memcacheDataVersioning:
        class: WarmUpListener
        tags:
            - { name: kernel.cache_warmer, priority: 0}

WarmUpListener.php

class WarmUpListener implements CacheWarmerInterface{

    public function warmUp($dir)
    {
        $array = ['parameters' => ['memcache.deploymentPrefix' => date('Ymd')]];
        $dumper = new Dumper();
        $yaml = $dumper->dump($array);

        file_put_contents(__DIR__ . '/../Resources/config/version.yml', $yaml);
    }

    public function isOptional()
    {
        return false;
    }

}

1 个答案:

答案 0 :(得分:0)

我已添加到DependencyInjection / * Extension类,如下所示

DependencyInjection / somethingExtension.php

$container->setParameter('memcache.deploymentPrefix', date('Ymd') );

这将有助于在缓存的配置中注入变量,而无需生成Yml文件,并且可以删除问题上的所有warmUp连接。