繁体   English   中英

Symfony2学说清除缓存

[英]Symfony2 doctrine clear cache

我需要在Symfony 2中清除我的学说的缓存。

命令行中必须有某种清除缓存的方法

还是应该在哪里找到并删除属于缓存的文件?

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

和命令列表(用于从项目目录复制/粘贴):

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

如果您想在代码中执行此操作(根据Doctrine的文档 ):

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

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

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

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

在同一台服务器上的php页面中。 这是Antho答案中的deleteAll()方法的作用,但是您不依赖于教义类。 顺便说一句:完整的缓存将被刷新-以防万一您将其用于非Doctrine的东西。

我以为我会疯狂使用教义结果缓存-最后,我不得不重新启动memcached。

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

bin/console

相对于:

app/console

也许这有点晚了,但是在我的情况下,学说并没有在生产环境中生成代理类,因为我将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%"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM