使用Twig 2删除特定的已编译模板

时间:2018-07-09 12:12:52

标签: php symfony twig

我有一个系统,允许用户从GUI编辑特定的模板文件。更改模板后,该模板文件的缓存(已编译模板)已被清除。在以前的Twig版本中,我习惯于做类似的事情:

/**
 * @var Twig_Environment $twig
 */
$cache = $twig->getCacheFilename('path/to/template/here.html.twig');

if (file_exists($cache)) {
    unlink($cache);
}

但是,在Twig 2中,getCacheFilename已从Twig_Environment中删除。我们如何使用Twig 2清除特定模板的缓存?

1 个答案:

答案 0 :(得分:0)

我最终设法使用以下代码构造了缓存文件名:

    $mainCls = $twig->getTemplateClass($path);
    $cache = $twig->getCache(false)->generateKey($path, $mainCls);

    if (file_exists($cache)) {
        unlink($cache);
    }

不知道为什么要从API中删除如此重要的方法。