特定のテンプレートの Twig コンパイル キャッシュを無効にする方法はありますか?
メール テンプレートに Twig を使用しています。誰かがこれらのテンプレートを更新すると、ディスクに書き込まれます。運用中ですが、キャッシュ全体をクリアする必要があります。そうしないと、更新が認識されません。
そのため、これらの特定のテンプレートの Twig キャッシュを無効にしたいと考えています。キャッシュ全体をクリアするとパフォーマンスが大幅に低下するため、余分な処理能力は気にしません。
あなたの答えは、特定のテンプレートのキャッシュを無効にすることではなく、更新後にテンプレートのキャッシュをクリアすることだと思います。以下のコードはテストしていませんが、妥当なようです。少し遊んでみてください
テンプレートを保存するアクション/サービス(テンプレートが保存された後):
$fileCache = $this->container->get('twig')->getCacheFilename('AcmeDemoBundle:Default:index.html.twig');
if (is_file($fileCache)) {
@unlink($fileCache);
}
詳細については、twigキャッシュファイルが/vendor/twig/twig/lib/Twig/Environment.php(\ Twig_Environment)-メソッドloadTemplate()でどのように渡されるかを確認してください。