8

特定のテンプレートの Twig コンパイル キャッシュを無効にする方法はありますか?

メール テンプレートに Twig を使用しています。誰かがこれらのテンプレートを更新すると、ディスクに書き込まれます。運用中ですが、キャッシュ全体をクリアする必要があります。そうしないと、更新が認識されません。

そのため、これらの特定のテンプレートの Twig キャッシュを無効にしたいと考えています。キャッシュ全体をクリアするとパフォーマンスが大幅に低下するため、余分な処理能力は気にしません。

4

1 に答える 1

2

あなたの答えは、特定のテンプレートのキャッシュを無効にすることではなく、更新後にテンプレートのキャッシュをクリアすることだと思います。以下のコードはテストしていませんが、妥当なようです。少し遊んでみてください

テンプレートを保存するアクション/サービス(テンプレートが保存された後):

$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()でどのように渡されるかを確認してください。

于 2013-01-09T15:47:40.167 に答える