我需要清除Symfony中的doctrine's缓存。命令行中必须有某种方法来 * 清除该高速缓存 *。或者我应该在哪里找到并删除属于缓存的文件?
eblbsuwk1#
对于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
型在Symfony 3之前:
app/console
型我会列出你该怎么做
app/console doctrine:cache:clear-metadata app/console doctrine:cache:clear-query app/console doctrine:cache:clear-result
型
kxeu7u2r2#
如果你想在你的代码中做这件事(来自Doctrine的文档):如果你只是想删除所有的缓存条目,你可以用deleteAll()方法来完成。
$cacheDriver = new \Doctrine\Common\Cache\ArrayCache(); $deleted = $cacheDriver->deleteAll();
字符串
6qqygrtg3#
我想我对教义结果缓存快疯了--最后我不得不重新启动memcached。
i86rm4rw4#
如果您使用APC,您也可以只调用代码
<?php $deleted = apc_clear_cache() && apc_clear_cache('user');
字符串在同一个服务器上的PHP页面。这就是Antho的答案中的deleteAll()方法所做的,但您不依赖于Doctrine类。顺便说一句:整个缓存将被刷新--以防你把它用于非教义的东西。
hs1ihplo5#
我知道这篇文章的标题是Symfony 2,但对于那些来自谷歌的人来说,如果你有Symfony 3+,它会是:
bin/console
字符串相对于:
r6hnlfcb6#
也许有点晚了,但在我的例子中,doctrine没有在生产中生成代理类,因此我将auto_generate_proxy_classes更改为true:
auto_generate_proxy_classes
#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%"
g0czyy6m7#
也许有人在搜索Symfony 6.2+
public function __construct(..., private KernelInterface $kernel
字符串还有
$this->kernel->shutdown(); //RESET ALL
型您正在运行多个实体,并且您管理了与会话的连接
/** @var SiteService $siteService */ $siteService = $this->container->get(SiteService::class); /** @var Site[] $sites */ $sites = $siteService->repository->getByInstalledSites(); foreach ($sites as $site) { dump('Domain:'. $site->getDomain()); $session = new Session(); $session->set('db_user', $site->getUser()); $session->set('db_password', $this->getDecryptPassword($site->getPassword())); $session->set('db_name', $site->getDatabaseName()) $user = $this->userService->getById(1); dump($user); //what you want to do ... $this->kernel->shutdown(); //RESET ALL CONNECTIONS }
7条答案
按热度按时间eblbsuwk1#
对于Symfony 3+:
字符串
将列出所有命令,以下命令与缓存相关:
型
在Symfony 3之前:
型
我会列出你该怎么做
型
kxeu7u2r2#
如果你想在你的代码中做这件事(来自Doctrine的文档):
如果你只是想删除所有的缓存条目,你可以用deleteAll()方法来完成。
字符串
6qqygrtg3#
我想我对教义结果缓存快疯了--最后我不得不重新启动memcached。
i86rm4rw4#
如果您使用APC,您也可以只调用代码
字符串
在同一个服务器上的PHP页面。这就是Antho的答案中的deleteAll()方法所做的,但您不依赖于Doctrine类。顺便说一句:整个缓存将被刷新--以防你把它用于非教义的东西。
hs1ihplo5#
我知道这篇文章的标题是Symfony 2,但对于那些来自谷歌的人来说,如果你有Symfony 3+,它会是:
字符串
相对于:
型
r6hnlfcb6#
也许有点晚了,但在我的例子中,doctrine没有在生产中生成代理类,因此我将
auto_generate_proxy_classes
更改为true:字符串
g0czyy6m7#
也许有人在搜索
Symfony 6.2+
字符串
还有
型
您正在运行多个实体,并且您管理了与会话的连接
型