2009-11-20 4 views
0

alt textcache Symfony est RUPTURE mes messages flash

Les messages flash dans les projets Symfony donnent aux commentaires utilisateurs du site après une action est effectuée. Ils ne s'affichent généralement que pour un chargement de page après le déclenchement de l'action.

Malheureusement, lorsque la mise en cache est activée, mes messages ne s'affichent pas et seule la version mise en cache de la page est renvoyée. Dans un cas, une version d'une page avec un message était mise en cache, ce qui signifiait que le message était affiché pour tout le monde.

Est-il possible de rendre le cache conscient des messages flash?

Répondre

1

Il y a deux options, celle qui est mentionnée par benlumley:

  1. Turn off with_layout, de sorte que la mise en page ne fait pas partie du fichier mis en cache. Cela n'empêchera pas votre problème que votre rendu du flash soit dans le modèle d'action.
  2. Effacer les parties sélectionnées du cache chaque fois que vous définissez et affichez le flash (n'oubliez pas de le supprimer après l'affichage du cache, sinon vous rencontrerez votre problème avec le flash apparaissant à d'autres utilisateurs. désactiver la mémoire cache une fois sur la page qui affiche le flash (voir les docs de symfony sur 'Configuring the Cache Dynamically) .La dernière option est assez douteuse à mon avis et devrait être utilisée en dernier recours, car par exemple les redirections peuvent tout visser.

peu importe comment vous le faites il n'y a pas de solution optimale qui peut rendre vos messages flash court-circuiter par magie le cache.

0

Il n'y a pas de façon automatique de faire en sorte que symfony s'en charge.

La meilleure solution/la plus courante consiste à désactiver with_layout pour toutes vos actions mises en cache, ou seulement ces actions particulières où les messages flash doivent être affichés. Cela résout normalement le problème car la plupart des gens ont tendance à produire des messages flash à partir de la mise en page plutôt que dans les modèles mis en cache.

Questions connexes