Symfony: Clear doctrine cache

Solution 1:

For Symfony 3+:

 php bin/console

will list all commands, the following are relevant for cache:

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

Before Symfony 3:

app/console

will list how you can do it

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

Solution 2:

If you want to do it within your code (from Doctrine's documentation) :

If you simply want to delete all cache entries you can do so with the deleteAll() method.

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

Solution 3:

I thought I was going crazy with doctrine results caching - in the end I had to restart memcached.

Solution 4:

In case you use APC, you could also just call the code

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

in a php page on the same server. This is what deleteAll() method in Antho's answer does, but you do not depend on the Doctrine Classes. Btw: the complete cache will be flushed - just in case you use it for non-Doctrine stuff.

Solution 5:

I know the title of this post says Symfony 2, but for those of you coming from google, if you have Symfony 3+ its gonna be:

bin/console

As opposed to:

app/console