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);
}

有关更多信息,请查看 /vendor/twig/twig/lib/Twig/Environment.php (\Twig_Environment) 中的 twig 缓存文件是如何提交的——方法 loadTemplate()。

于 2013-01-09T15:47:40.167 回答