Symfony2禁用缓存?
Posted
技术标签:
【中文标题】Symfony2禁用缓存?【英文标题】:Symfony2 disable cache? 【发布时间】: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 测试 :) 【参考方案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
【讨论】:
以上是关于Symfony2禁用缓存?的主要内容,如果未能解决你的问题,请参考以下文章