Часть моей конфигурации приложения Symfony загружается из старой базы данных, поэтому иногда мне нужно сделать недействительным кеш контейнера, чтобы использовать обновленные данные.
Существует ли какой-либо API для программного кэширования кэша контейнеров Symfony?
В соответствии с CacheClearCommand
:
$filesystem = $this->container->get('filesystem'); $realCacheDir = $this->container->getParameter('kernel.cache_dir'); $this->container->get('cache_clearer')->clear($realCacheDir); $filesystem->remove($realCacheDir);
Непосредственно вызовите CacheClearCommand из кода:
services.yml
clear_cache_command_service: class: Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand calls: - [setContainer, ["@service_container"] ]
Чем это возможно сделать (обратите внимание, что это разогревает кеш):
$clearCacheCommand = $this->container->get('clear_cache_command_service'); $clearCacheCommand->run(new ArgvInput(), new ConsoleOutput());