我正在使用Symfony2(很快3),並且我們得到了一些存儲在數據庫中的翻譯。 這意味着當我們運行緩存時:清除翻譯從數據庫中提取並存儲在緩存中(在磁盤上)。 這也意味着用戶可以直接在數據庫中更改翻譯,但這些更改不會立即顯示。Symfony 2重載翻譯緩存
有沒有辦法只有清除Symfony中的翻譯緩存文件?沒有刷新整個緩存?
我正在使用Symfony2(很快3),並且我們得到了一些存儲在數據庫中的翻譯。 這意味着當我們運行緩存時:清除翻譯從數據庫中提取並存儲在緩存中(在磁盤上)。 這也意味着用戶可以直接在數據庫中更改翻譯,但這些更改不會立即顯示。Symfony 2重載翻譯緩存
有沒有辦法只有清除Symfony中的翻譯緩存文件?沒有刷新整個緩存?
運行./bin/console cache:clear
不提供任何選項來刪除哪個緩存文件夾。它只是清除整個文件夾,只有處理熱身可以使用選項進行配置。有關參考,請參閱FrameworkBundle中的CacheClearCommand。
您可以編寫自己的命令,但只檢查翻譯緩存目錄並清除它。默認情況下,它位於一個子文件夾translations/
應當與這樣的取景器方便:
$finder = (new Finder)->in($cacheDir.'/'.$env)->directories()->name('translations');
foreach ($finder as $translationsDir) {
rmdir($translationDir->getPathname();
}
我這樣做,所以
$cacheDir = dirname($this->getParameter('kernel.cache_dir'));
foreach (['prod', 'dev'] as $env) {
array_map('unlink', glob("$cacheDir/$env/translations/*"));
}