Effacer le cache Symfony directement dans son application

Effacer le cache Symfony directement dans son application

Dans un de nos derniers projets Symfony, nous avons été confrontés au fait de devoir effacer tout le cache de l’application sans devoir passer par la ligne de commandes, voici la petite astuce qui servira à d’autres pouvant être confrontés au même cas de figure

Un code simple mais efficace qui efface tout le cache

$application = $this->getApplication()->find('cache:clear');
$application->run(new ArrayInput(array( 'command' => 'cache:clear' )), new NullOutput());

Le morceau de code est relativement simple. On récupère la commande cache:clear que l’on va lancer. Le résultat de l’exécution est stocker dans un buffer vide (NullOutput) de sorte à ne pas garder le résultat de la sortie de commande.

Il est tout à fait possible de récupérer le résultat de la commande et de s’en servir par la suite, dans ce cas, il faut utiliser un BufferedOutput.

Nous avons utilisé ce bout de code dans une ligne de commande symfony, le besoin était d’effacer le cache complet après avoir synchronisé un certain nombre de données.

W3 Total Cache : les publications Facebook n’affichent plus d’image
Value Object : le must-have du développeur
NodeJS : maintenez vos packages.json à jour
Pixabay : le moteur de recherches d’images libres de droit