【问题标题】:Symfony2 disable cache?Symfony2禁用缓存?
【发布时间】:2011-11-03 18:37:09
【问题描述】:

有没有办法在 Symfony2 中禁用缓存功能?我试图在 config* 和 parameters.ini 文件中找到设置,并且搜索了很多。好的,我找到了一些解决方案,但最新版本 (Symfony2) 没有。

为什么?因为我想在不清除 app/cache* 的情况下测试新的模板和功能。

【问题讨论】:

  • 这个缓存概念仍然让我感到困惑。不确定是否可能。实际上有两个缓存 - 至少 - 用于提升(树枝,配置,路线)和另一个用于使用的组件。不确定,鉴于 sf2 std 发行版的架构,禁用缓存的想法是否有意义。 :-/ 我猜代码必须进行相当大的更改,因为您必须将 yml-configs、yml-routings 和模板转换为 php ...如果使用 php 作为路由,可能更容易变得独立于缓存,首先是模板和配置。
  • 您要禁用哪种/级别的缓存?对于 HTTP 缓存,最好的概述可能是here——但请注意,无论如何默认情况下它都没有打开。您能否更详细地解释一下您要解决的问题是什么?
  • 我想在不清除 /app/cache/* 的情况下测试模板和配置。
  • 使用 app_dev.php 测试 :)

标签: php model-view-controller caching frameworks symfony


【解决方案1】:

我假设您使用的是 Twig 引擎(Symfony2 的默认模板引擎)。要在 twig 中禁用缓存,这样您就不必像这样继续清除缓存:

rm -rf app/cache/*

导航到您的应用配置文件(默认位于根目录的 ../app/config/config.yml 中)。滚动到 twig 配置设置(在 twig: 下)并将缓存值(应该指向缓存目录)更改为 false,如下所示:

twig:
    cache:  false

如果您没有看到任何缓存配置条目,只需添加上面的行。

查看 Twig 包的配置参考也可能会有所帮助:http://symfony.com/doc/2.0/reference/configuration/twig.html

编辑完 config_dev.yml 文件后,进入终端并运行:

app/console cache:clear

【讨论】:

  • 大家好,我尝试了提供的解决方案,现在我从 twig 得到的只是一个空白页。我的 yml 文件中从来没有缓存选项。任何人都有一个想法..?
  • 我建议仅在 app_dev.php 上禁用树枝缓存。它工作正常,远离您的生产配置。
  • 如何在 app_dev.php 中禁用树枝缓存?所有文档都说 app_dev.php 默认禁用 twig 缓存,但我没有看到这种行为。
  • 节省了我这样做而不是缓存的时间:每次更改模板时都清除!
  • 你提到了 config.yml 和 config_dev.yml。两者都需要修改吗?
【解决方案2】:

好的,关于您的说明,解决方案只是通过前端控制器 web/app_dev.php 使用开发环境。然后 sf2 会跟踪您的调整,您不必清除缓存。

【讨论】:

    【解决方案3】:

    这个原始解决方案对我有用http://symfony.com/doc/current/cookbook/debugging.html

    【讨论】:

    • 该链接没有显示如何设置 twig 在每个请求上重新编译。
    【解决方案4】:

    除了接受的答案之外,我建议以某种方式编辑您的 config_dev.yml,以便它仍然可以调试您的 twig 模板。为此,请将此代码添加到您的 config_dev.yml 文件中:

    twig:
        cache: false
        debug: true
    
    services:
        twig.extension.debug:
            class: Twig_Extension_Debug
            tags:
                    - { name: 'twig.extension' }
    

    编辑完 config_dev.yml 文件后,进入终端运行:

    app/console cache:clear
    

    通过这样做,您将重新加载 config_dev.yml 设置 - 使您的项目使用新配置运行。

    希望这会有所帮助。

    【讨论】:

      【解决方案5】:

      编辑 'config_dev.yml' 和 'config.yml' 然后把两者都放进去

      twig:
          cache:  false
      

      【讨论】:

        猜你喜欢
        • 2013-09-23
        • 1970-01-01
        • 2014-10-22
        • 2011-09-20
        • 1970-01-01
        • 2014-10-06
        • 2016-05-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多