2013-10-10 34 views
2

我想删除一个字符串前缀我所有的缓存条目,但我的代码返回:主义缓存的Symfony2 deleteByPrefix

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

和我的代码是

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

等,其中我查了一下:进入教条http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/caching.html#deleting的文件。

我需要清除缓存,因为控制器,而不是从CLI ...

是否有人来替代这种方法“deleteByPrefix()”?

+0

你的缓存管理器实际上是一个'FilesystemCache'对象具有[无方法(HTTP:// API .nellafw.org/class-Doctrine.Common.Cache.Cache.html)'deleteByPrefix'。使你的'$ cachemanager'成为一个对象的实例,它将* wrap * doctrine的缓存并添加你的自定义方法 – Touki

回答

0

最后,我来使用Zend框架缓存束,谁允许由前缀删除...

0

您可以使用命名空间。这将需要重新组织你的缓存。或者您可以编写自己的实现(扩展Doctrine \ Common \ Cache \ FilesystemCache),它将实现deleteByPrefix(),但您将使用简单地切换缓存提供程序的功能。

+0

在使用命名空间时,我该如何删除具有特定命名空间的所有条目?没有'deleteAll()'功能... – pbenard

+0

你不想说:“你会***失去***切换缓存提供者的能力”吗? –