答案 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%"