从1.22.x开始,在Twig中清除整个缓存的惯用方法是什么?

时间:2015-10-14 14:30:25

标签: php twig idiomatic

1.22.0 Twig版以来,不推荐使用方法Twig_Environment::clearCacheFiles()。但是,我没有找到任何地方(也没有在文档中,也没有在回购票中,也没有在SO上找到)可以取代这种弃用方法的东西。

那么现在清除所有缓存文件的惯用(而不是弃用)是什么?

通过实现自己的功能清除这些文件似乎很奇怪。

2 个答案:

答案 0 :(得分:1)

因此没有新的惯用方法来清除所有缓存文件 Twig项目维护人员可以自己将它留给图书馆用户。论点是:

  

论证是Twig本身只支持文件系统缓存(由于opcache)。因此clear()与手动删除缓存文件夹相同。因此,它不需要在界面中。因此,您必须手动清除缓存或自行编写方法。

有关详细信息,请参阅@ alain-tiemblo在评论中提及的relevant issue

答案 1 :(得分:0)

如果您感兴趣,可以使用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开始。