禁用特定模板的Twig编译缓存

时间:2013-01-09 11:43:48

标签: php symfony twig

有没有办法为特定模板禁用Twig编译缓存?

我正在使用Twig作为我的电子邮件模板。当有人更新这些模板时,它们会写入磁盘。虽然在生产中,我应该清除整个缓存,否则不会注意到更新。

这就是我想为这些特定模板禁用Twig缓存的原因。我不介意额外的处理能力,因为清除整个缓存是一个更大的性能影响。

1 个答案:

答案 0 :(得分: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()。