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);
它开始工作了!希望对其他人有帮助!
我正在使用新的 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);
它开始工作了!希望对其他人有帮助!