Symfony缓存:清除命令触发警告

时间:2016-01-14 14:16:08

标签: php symfony caching twig

在空缓存上运行Symfony2缓存:clear命令会一直触发错误。

我们没有在配置文件中定义auto_reload,因此它使用调试值。 在开发中这将是真实的,在生产中这将是错误的。 当auto_reload为真时,它可以正常工作,因为它不会尝试包含缓存中的文件。

  • Symfony的缓存预热命令将使用CacheWarmerAggregate
  • 其中一个加热器是TemplateCacheCacheWarmer
  • warmUp的{​​{1}}方法中,如果模板的引擎是树枝,则会尝试加载模板,调用TemplateCacheCacheWarmer loadTemplate
  • Twig_Environment内,缓存会生成一个随机密钥,如果Twig_Environment为false,则会调用autoReload
  • $this->cache->load中的load函数使用被抑制的include_once,它会触发警告,因为尚未写入缓存,因此无法找到该文件

重现的步骤:

  1. Twig_Cache_Filesystem
  2. $debug = error_get_last();之后添加$this->cache->load($key);或您想要用来调试错误的任何内容
  3. 删除缓存文件夹的内容
  4. 运行app / console cache:clear --env = prod
  5. $ debug将包含一个错误Twig_Environment::loadTemplate

0 个答案:

没有答案