Symfony缓存组件(3.1)不保存缓存

时间:2016-11-22 13:58:04

标签: php caching symfony-3.1

我正在使用新的Symfony缓存组件。我首先使用命令生成我的缓存(Command / AppCacheGenerateCommand.php):

$cache = new FilesystemAdapter();         
foreach ($domains as $domain){
        if ($domain->getHost()){
            $output->writeln('Generate cache for domain: ' . $domain->getHost());
            $domainCache = $cache->getItem('domain.' . $domain->getHost());
            $domainCache->set($domain->getId());
            $cache->save($domainCache);
        }
    }

然后尝试在onKernelRequest EventListener(EventListener / RequestListener.php)中获取这些缓存的元素

$cache = new FileSystemAdapter();
    $domainCache = $cache->getItem('domain.' . $host);
    if (!$domainCache->isHit()){
        die;
    }

它总是在这里死去,而不是更进一步。任何人都可以给我一个解释? (如果主持人不匹配,我已经尝试了,但确实......)

1 个答案:

答案 0 :(得分:3)

我已经找到了答案:

首先我必须在config.yml中添加缓存配置:

framework:
    cache:
        pools:
            my_cache_name:
                adapter: cache.adapter.filesystem
                default_lifetime: 0

而不是

$cache = new FilesystemAdapter(); 

我必须使用以下新服务:

$cache = $this->getContainer()->get('my_cache_name);

它开始工作了!希望对别人有所帮助!