从Twig
的1.22.0
版本开始,不支持使用Twig_Environment::clearCacheFiles()
方法。然而,我没有找到任何地方(无论是在文档中,也不是在回购票据中,也不是在SO上)可以取代这个被弃用的方法。
那么现在清除所有缓存文件的惯用方法是什么?
通过实现自己的函数来清除这些文件似乎很奇怪。
所以没有新的惯用方法来清除所有缓存文件。Twig
项目维护者把它留给库用户自己使用。参数是:
这个论点是,Twig本身将只支持文件系统缓存(由于opcache)。因此,clear()与手动删除缓存文件夹相同。因此,它不需要在界面中。因此,您必须手动清除缓存或自己编写方法。
详情请参阅@alain-tiemblo在评论中提到的相关问题
如果您感兴趣,这里是Twig中被弃用的方法,它被转换成一个通用函数。它只删除叶子节点(Twig生成的php文件),而不删除目录。您需要确保传入的路径是正确的。
function clearCacheFiles($cacheLocation) {
if (is_string($cacheLocation)) {
foreach (new 'RecursiveIteratorIterator(
new 'RecursiveDirectoryIterator($cacheLocation),
'RecursiveIteratorIterator::LEAVES_ONLY) as $file
) {
if ($file->isFile()) {
@unlink($file->getPathname());
}
}
}
}
从Twig/lib/Twig/Environment.php第一次标记弃用时的样子