Symfony: кешировать метод POST - PullRequest
1 голос
/ 02 ноября 2010

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

Ответы [ 2 ]

3 голосов
/ 04 ноября 2010

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

2 голосов
/ 02 ноября 2010

Надеюсь, вы знаете, что в большинстве случаев кэширование POST-запросов не то, что вам нужно;)

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

Фильтр кэша

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

Просмотр диспетчера кэша

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...