2013-10-10 5 views
2

Je voudrais supprimer toutes mes entrées de cache préfixés par une chaîne, mais mon code retourne:Doctrine Cache Symfony2 deleteByPrefix

Fatal error: Call to undefined method Doctrine\Common\Cache\FilesystemCache::deleteByPrefix() 

et mon code est

$deleted = $cachemanager->deleteByPrefix('catalog_'); 

comme l'endroit où j'ai vérifié: en la documentation de la doctrine http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/caching.html#deleting.

je dois vider le cache depuis le contrôleur, pas de CLI ...

Est-ce que quelqu'un comme alternative à cette méthode 'deleteByPrefix()'?

+0

Votre gestionnaire de cache est en fait un objet 'FilesystemCache' qui a [aucune méthode] (http: // api .nellafw.org/class-Doctrine.Common.Cache.Cache.html) 'deleteByPrefix'. Faites de votre $ cachemanager une instance d'un objet qui * enrobera * le cache de doctrine et ajoutera votre méthode personnalisée – Touki

Répondre

0

Enfin, je viens d'utiliser le faisceau de cache Zend Framework, qui permet de supprimer le préfixe par ...

0

Vous pouvez utiliser l'espace de noms. Cela nécessitera de réorganiser vos caches. Ou vous pouvez écrire votre propre implémentation (extension Doctrine \ Common \ Cache \ FilesystemCache) qui implémentera deleteByPrefix(), mais vous utiliserez la possibilité de simplement changer de fournisseur de cache.

+0

En utilisant namespace, comment puis-je supprimer toutes les entrées avec un espace de noms spécifique? Il n'y a pas de fonction 'deleteAll()' ... – pbenard

+0

Vous ne vouliez pas dire: "vous allez *** perdre *** la possibilité de changer de fournisseur de cache"? –

Questions connexes