2016-08-16 67 views
1

我正在使用Symfony2(很快3),並且我們得到了一些存儲在數據庫中的翻譯。 這意味着當我們運行緩存時:清除翻譯從數據庫中提取並存儲在緩存中(在磁盤上)。 這也意味着用戶可以直接在數據庫中更改翻譯,但這些更改不會立即顯示。Symfony 2重載翻譯緩存

有沒有辦法只有清除Symfony中的翻譯緩存文件?沒有刷新整個緩存?

回答

0

運行./bin/console cache:clear不提供任何選項來刪除哪個緩存文件夾。它只是清除整個文件夾,只有處理熱身可以使用選項進行配置。有關參考,請參閱FrameworkBundle中的CacheClearCommand

您可以編寫自己的命令,但只檢查翻譯緩存目錄並清除它。默認情況下,它位於一個子文件夾translations/應當與這樣的取景器方便:

$finder = (new Finder)->in($cacheDir.'/'.$env)->directories()->name('translations'); 
foreach ($finder as $translationsDir) { 
    rmdir($translationDir->getPathname(); 
} 
1

我這樣做,所以

$cacheDir = dirname($this->getParameter('kernel.cache_dir')); 

foreach (['prod', 'dev'] as $env) { 
    array_map('unlink', glob("$cacheDir/$env/translations/*")); 
}