如何在symfony中禁用缓存

时间:2015-09-04 11:37:10

标签: php symfony

我正在symfony框架中开发一个网站。在我的缓存文件夹中存储了一个巨大的缓存。我想永久禁用缓存。

5 个答案:

答案 0 :(得分:10)

虽然我建议不要在生产系统上禁用缓存,但您可以通过编辑和添加到config.yml文件

来禁用twig模板引擎缓存
twig:
    cache: false

答案 1 :(得分:8)

可以在app_dev.php$loader = require_once __DIR__.'/../app/autoload.php'; Debug::enable(); $kernel = new AppKernel('dev', true); #$kernel->loadClassCache(); // <-- comment out this line $request = Request::createFromGlobals(); 文件中禁用Symfony2中的类缓存:

var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
///<reference path="../../node_modules/angular2/typings/browser.d.ts"/>
System.register("main", ["app.component", 'angular2/platform/browser'], function(exports_2) {
    "use strict";
    var app_component_1, browser_1;
    return {
        setters:[
            function (app_component_1_1) {
                app_component_1 = app_component_1_1;
            },
            function (browser_1_1) {
                browser_1 = browser_1_1;
            }],
        execute: function() {
            browser_1.bootstrap(app_component_1.AppComponent);
        }
    }
});

System.register("app.component", ['angular2/core'], function(exports_1) {
    "use strict";
    var core_1;
    var AppComponent;
    return {
        setters:[
            function (core_1_1) {
                core_1 = core_1_1;
            }],
        execute: function() {
            AppComponent = (function () {
                function AppComponent() {
                }
                AppComponent = __decorate([
                    core_1.Component({
                        selector: 'my-app',
                        template: '<h1>My First Angular 2 App</h1>'
                    }), 
                    __metadata('design:paramtypes', [])
                ], AppComponent);
                return AppComponent;
            }());
            exports_1("AppComponent", AppComponent);
        }
    }
});
//# sourceMappingURL=all.js.map

Symfony2 - Disabling the Bootstrap File and Class Caching

答案 2 :(得分:3)

我认为您无法禁用“永久缓存”,因为Symfony应用程序使用一些缓存文件以便更快地运行(或简单地运行)。例如,包含依赖注入容器(appProdProjectContainer.php)的文件。

您可以禁用某些类型的缓存,例如Twig缓存(如之前Diego Ferri所述)或Http Cache(在app.php中使用AppCache解包AppKernel)或甚至是Doctrine缓存(在config.yml中)。

但我不建议这样做。您缓存应用的次数越多,您的应用就越快。

答案 3 :(得分:2)

即使使用app_dev.php,我也遇到了缓存问题。我会改变路线但是当我尝试通过浏览器访问它时它不会更新。

我试着评论出有缓存的东西(如上所述)。我的AppKernel('dev',true)设置为true。没有任何效果。

如果我运行控制台缓存:清除它会修复它,但下一次路由更改会再次中断。我不得不运行缓存:清除每次保存,这很荒谬。

我的问题结果是因为我在SFTP上远程工作,PHP Storm(我的编辑器)在其部署配置中“保留了时间戳”。一旦我改变了配置,问题就消失了。显然有一些缓存正在查看文件时间戳,即使在开发环境中也是如此。

答案 4 :(得分:0)

当您在开发环境状态下工作时,无论如何都会禁用缓存 - 我假设您只想在开发中禁用它,因此请使用/app_dev.php文件确保没有缓存任何内容。

或者,您可以使用

在命令行上定期清空缓存
php app/console cache:clear

您可以在此处查看所有不同的参数:http://symfony.com/doc/current/cookbook/console/usage.html