Компонент кэша 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/RequestListener.php)
$cache = new FileSystemAdapter();
$domainCache = $cache->getItem('domain.' . $host);
if (!$domainCache->isHit()){
die;
}
Здесь всегда умирают, не двигаясь дальше. Кто-нибудь может дать мне объяснение? (Я пробовал, если хост не совпадает, но это так...)
2
Author: Bhargav Rao, 2016-11-22
1 answers
Я придумал ответ:
Сначала мне пришлось добавить конфигурацию кэша в 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);
И это начало работать! Надеюсь, это поможет другим!
2
Author: Apród Illés, 2016-11-26 22:06:00