我正在使用新的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;
}
它总是在这里死去,而不是更进一步。任何人都可以给我一个解释? (如果主持人不匹配,我已经尝试了,但确实......)
答案 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);
它开始工作了!希望对别人有所帮助!