Symfony2主义清除缓存

时间:2012-08-06 10:24:15

标签: php caching symfony doctrine

我需要在doctrine's中清除Symfony 2缓存。

清除缓存的命令行必须有一些方法。

或者我应该在哪里找到并删除属于缓存的文件?

6 个答案:

答案 0 :(得分:107)

app/console

将列出你如何做到这一点

 app/console doctrine:cache:clear-metadata 
 app/console doctrine:cache:clear-query  
 app/console doctrine:cache:clear-result 

对于symfony 3 +:

 php bin/console

和命令列表(对于项目目录中的copy / past):

 php bin/console doctrine:cache:clear-metadata 
 php bin/console doctrine:cache:clear-query  
 php bin/console doctrine:cache:clear-result

答案 1 :(得分:10)

如果您想在代码中(来自Doctrine's documentation):

  

如果您只想删除所有缓存条目,可以使用   deleteAll()方法。

    <?php
    $cacheDriver = new \Doctrine\Common\Cache\ArrayCache();
    $deleted = $cacheDriver->deleteAll();

答案 2 :(得分:1)

如果您使用APC,您也可以只调用代码

<?php
$deleted = apc_clear_cache() && apc_clear_cache('user');

在同一台服务器上的php页面中。这就是Antho的回答中的deleteAll()方法,但是你不依赖于Doctrine Classes。顺便说一句:完整的缓存将被刷新 - 以防你将它用于非Doctrine的东西。

答案 3 :(得分:1)

我以为我对教条结果缓存感到疯狂 - 最后我不得不重新启动memcached。

答案 4 :(得分:0)

我知道这篇文章的标题是Symfony 2,但是对于那些来自Google的人来说,如果您拥有Symfony 3+,它将是:

bin/console

相对于:

app/console

答案 5 :(得分:0)

为此,可能有点晚了,但就我而言,教义并没有在生产环境中生成代理类,因为我将auto_generate_proxy_classes更改为true:

#symfony2&3 app/config/config.yml
#symfony4 config/packages/doctrine.yaml (by default true since 4.2)

doctrine:
    orm:
        auto_generate_proxy_classes: true #"%kernel.debug%"