Symfony2禁用缓存?

NaN*_*NaN 37 php model-view-controller caching frameworks symfony

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

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

小智 72

我假设你正在使用Twig引擎,(Symfony2的默认模板引擎).要禁用twig中的缓存,以便您不必像以下那样继续清除缓存:

rm -rf app/cache/*
Run Code Online (Sandbox Code Playgroud)

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

twig:
    cache:  false
Run Code Online (Sandbox Code Playgroud)

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

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

编辑config_dev.yml文件后,转到终端并运行:

app/console cache:clear
Run Code Online (Sandbox Code Playgroud)

  • 我建议仅在"app_dev.php"上禁用twig缓存.它工作正常,远离您的生产配置. (2认同)

Raf*_*ael 8

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


Dev*_*vWL 5

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

twig:
    cache: false
    debug: true

services:
    twig.extension.debug:
        class: Twig_Extension_Debug
        tags:
                - { name: 'twig.extension' }
Run Code Online (Sandbox Code Playgroud)

编辑config_dev.yml文件后,转到终端并运行:

app/console cache:clear
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助.