2013-10-10 5 views
2

Я хотел бы, чтобы удалить все мои записи кэша префиксом строки, но мой код возвращает:Доктрина Cache 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: // апи .nellafw.org/класс-Doctrine.Common.Cache.Cache.html) 'deleteByPrefix'. Сделайте свой '$ cachemanager' экземпляр объекта, который будет * wrap * доктрины доктрины, и добавит ваш собственный метод – Touki

ответ

0

Наконец, я пришел, чтобы использовать пакет кэша Zend Framework, которые дают разрешение на удаление префикса ...

0

Вы можете использовать пространство имен. Это потребует реорганизации ваших кешей. Или вы можете написать свою собственную реализацию (расширение Doctrine \ Common \ Cache \ FilesystemCache), которая будет реализовывать deleteByPrefix(), но вы будете использовать возможность простого переключения поставщика кеша.

+0

В использовании пространства имен, как я могу сделать, чтобы удалить все записи с определенным пространством имен? Нет функции deleteAll() ... – pbenard

+0

Разве вы не хотели говорить: «вы потеряете *** возможность переключения поставщика кешей»? –

Смежные вопросы