【问题标题】:What is idiomatic way to clear whole cache in Twig since 1.22.x?自 1.22.x 以来清除 Twig 中整个缓存的惯用方法是什么?
【发布时间】:2015-10-14 14:30:25
【问题描述】:

由于1.22.0Twig 的版本,方法Twig_Environment::clearCacheFiles() 已被弃用。但是,我在任何地方(无论是在文档中、在 repo 票证中还是在 SO 上)都没有找到可以替代这种已弃用方法的东西。

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

通过实现自己的函数来清除这些文件似乎很奇怪。

【问题讨论】:

  • 不错的收获。涉及的提交是here。似乎不再支持 clear 方法。我为您的评论创建了this issue

标签: php twig idioms


【解决方案1】:

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

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

更多细节可以阅读relevant issue@alain-tiemblo 早期在 cmets 中引用。

【讨论】:

    【解决方案2】:

    如果您有兴趣,这里是 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,它在第一次被标记为弃用时出现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 2015-11-08
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多