Symfony2 Bonne Pratique : Déporter la session du cache

Aujourd’hui je vous propose une petite astuce qui pourrait vous simplifier la vie. Sortir la session Symfony2 du cache.

La session

Qu’est-ce que la session ? La session est le fichier (ou les fichiers…) qui permet de gérer les connexions en cours. Si vous supprimez ce fichier, les personnes actuellement connectées devraient être redirigées vers votre firewall.

Quel intérêt ?

Vous ne voyez pas encore pourquoi faire mais je vais éclairer votre esprit tout de suite. Un cas simple : admettons que vous travaillez un serveur de développement, vous vous connectez pour effectuer des tests. Dans le pire des cas, vous devez tester du code directement en «dev» et vous videz le cache à répétition (Non ! Non ! Non ! Tester en dev est sale, et cela n’arrive jamais… !). Dans le même temps des bêta testeurs se connectent et découvrent votre plateforme si stable. Malheureusement pour eux toutes les minutes vous videz le cache et les déconnectés. Alors pour éviter de les déranger et de recevoir des mails intempestives, déporter la session du cache !

Comment faire ?

Cela est très simple car Sensio qui est en charge du développement de Symfony a prévu le coup !

Vous devez modifier votre fichier de configuration (config.yml) comme je vous l’ai mis dans ce petit Gist :p

1
2
3
4
5
6
7
8
# config.yml
framework:
# …
session:
# La session sera déportée dans app/var/sessions/
# N'oubliez pas de créer les deux dossiers, sinon Symfony2 n'arrivera pas à écrire dans votre répertoire
save_path: %kernel.root_dir%/var/sessions
# …

Et voilà, il ne vous reste plus qu’à vider le cache avec la commande « fétiche » (app/console cache:clear), et c’est tout bon !