php - 使用 Twig 2 删除特定的编译模板
问题描述
我有一个允许用户从 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 清除特定模板的缓存?
解决方案
我最终设法使用以下代码构造了缓存文件名:
$mainCls = $twig->getTemplateClass($path);
$cache = $twig->getCache(false)->generateKey($path, $mainCls);
if (file_exists($cache)) {
unlink($cache);
}
不知道为什么从 API 中删除了如此重要的方法。
推荐阅读
- marklogic - 如何查询 MarkLogic 以确定重新索引的成本?
- apache-kafka - “注册”是 Ksql 中的保留关键字,如果是,我如何选择具有该名称的字段
- javascript - 带有 EasyPieChart 和 Waypoint 的 JS 未执行
- javascript - 按钮属性在单击后恢复正常
- c# - Asp.net MVC Ajax 在 GET HTML 上调用空参数
- django - 错误:重复记录违反了单数约束“user_otherinfo_user_id_key”
- maven - 如何使用较新版本的 Hadoop 构建融合的 kafka hdfs 连接器
- java - Stringbuilder subSequence 方法的时间复杂度
- reporting-services - 在 SSRS 中读取带空格的 URL 参数
- java - 我想将一些数据上传到我的数据库,但该方法返回 null