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

Symfony Cache Component (3.1) not saving cache

我正在使用新的 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;
    }

它总是死在这里,不会更进一步。谁能给我一个解释? (如果主机不匹配,我已经尝试过,但确实...)

我找到答案了:

首先我必须在 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);

它开始工作了!希望对其他人有帮助!