Компонент кэша 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;
    }

Здесь всегда умирают, не двигаясь дальше. Кто-нибудь может дать мне объяснение? (Я пробовал, если хост не совпадает, но это так...)

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