J'essaie actuellement de mettre en œuvre un moyen de flasher les données de session de la même manière que Laravel traite les données flash. Je suis conscient que Laravel remplacer les méthodes de session natives qui sont appelées par des fonctions comme session_start.Comment Laravel désactive-t-il les données de session flash?
Ils semblent le faire avec le paquet Http foundation
de Symfony en créant des méthodes personnalisées pour open
, read
, write
, etc. pour la session. Cela se fait à l'aide session_set_save_handler
:
http://php.net/manual/en/function.session-set-save-handler.php
En utilisant cette fonction, vous pouvez mettre en œuvre votre logique ouverte lorsque vous démarrez une session ou une session sera écrite à. Mais jusqu'à présent, je ne peux pas trouver la logique directe dans la base de code Laravel où les données flash sont en train d'être désactivées.
Il serait logique de mettre à l'état initial les données flash juste avant la fonctionnalité write
de la session. De cette façon, vous le supprimerez pour les demandes futures et vous serez sûr que cela n'arrivera qu'à la fin de votre code.
Quelqu'un pourrait-il me dire comment Laravel traite les messages flash de session?
Qu'en est-il lorsque des requêtes ajax ou des redirections sont en cours? Est-ce que Laravel va également déplacer les données flash dans l'ancien ou y at-il des contrôles en place pour cela? Je suppose que vous pourriez obtenir un comportement indésirable si quelque chose comme une requête ajax ou des redirections provoque la mise à l'arrêt des données flash. –
Lors d'un appel ajax, les données flash sont déplacées vers _flash.old. vous pouvez le voir dans le middleware StartSession. Si vous voulez conserver les données flash actives pour la prochaine requête, vous pouvez utiliser la méthode 'reflash' –