2010-11-02 7 views
1

J'ai lu les tutoriels pour Symfony et il est dit que les requêtes POST ne sont jamais mises en cache. Puis-je remplacer ceci pour que je puisse mettre en cache la page résultante pour la requête POST?Symfony: cache une méthode POST

Répondre

2

Hopefuly vous savez que, dans la plupart des cas la mise en cache une demande POST est pas ce que vous voulez;)

Ci-dessous quelques conseils.

filtre Cache

filtre de cache est responsable de la mise en cache de la réponse. Par défaut, symfony utilise la classe sfCacheFilter et vous pouvez le changer dans le fichier filters.yml de votre application.

Voir gestionnaire de cache

sfCacheFilter ne fait pas beaucoup. Il utilise le gestionnaire de cache de vue pour effectuer tout le travail.

Implémentation par défaut (classe sfViewCacheManager) a une méthode isCacheble (). Vous pouvez commencer ici en retournant false pour tout ce qui n'est pas une requête GET.

La classe de gestionnaire de cache de vue peut être modifiée dans le fichier factories.yml. Vous pouvez écrire votre propre classe en étendant le sfViewCacheManger et en surchargeant une partie de son comportement.

3

La réponse de kuba est techniquement correcte, mais êtes-vous sûr vous voulez mettre en cache un POST? Si possible, il est préférable de rediriger l'utilisateur, en stockant certaines valeurs sur l'utilisateur.

+0

Techniquement correct, le meilleur type de correct. –

+0

D'accord. Vous devriez essayer de changer le POST en GET plutôt que de pirater le framework. – anushr