禁用特定模板的小枝编译缓存


Disable Twig compilation cache for a particular template

是否有一种方法可以禁用特定模板的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)——method loadTemplate()