2010-11-02 3 views
1

Я прочитал учебники для Symfony, и он говорит, что запросы POST никогда не кэшируются. Могу ли я переопределить это, чтобы я мог кэшировать приведенную страницу для запроса POST?Symfony: кеш-метод POST

ответ

2

Hopefuly вы знаете, что в большинстве случаев кэширование POST запросы не то, что вы хотите;)

Ниже несколько советов.

Кэш фильтра

фильтр Кэш отвечает за кэширование ответа. По умолчанию symfony использует sfCacheFilter класс, и вы можете изменить его в filters.yml файл вашего приложения.

менеджер Просмотр кэш

sfCacheFilter ничего не делает. Он использует диспетчер кеша представления для выполнения всей работы.

Реализация по умолчанию (sfViewCacheManager класс) имеет метод isCacheble(). Вы можете начать здесь, когда он возвращает false для всего, что не является запросом GET.

Просмотреть класс менеджера кэша можно изменить в файле factory.yml. Вы можете написать свой собственный класс, расширив sfViewCacheManger и перегрузив часть его поведения.

3

Ответ на кубу технически корректен, но вы уверены, что хотите кэшировать POST? Если возможно, предпочтительнее перенаправить пользователя, сохранив некоторые значения для пользователя.

+0

Технически правильный, лучший вид правильного. –

+0

Согласовано. Вы должны попробовать изменить POST в GET, а не взломать фреймворк. – anushr

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