Aller au contenu

Bilan : vos façades helper

Vous avez construit un jeu de façades de confort dans mvc/helpers/, toutes bâties sur une base non instanciable, chacune centrée sur un concern.

État final de mvc/helpers/

mvc/helpers/ ├── __init__.py # ré-exporte Session, Cookies, Flash ├── _facade.py # base : namespace non instanciable ├── session.py # Session : le store + son cookie sécurisé ├── cookies.py # Cookies : cookies applicatifs génériques └── flash.py # Flash : messages one-shot

Quand utiliser quoi

Besoin À utiliser
Créer / lire / écrire une session Session.new / Session.get / Session.set
Lire l'id de session depuis le cookie Session.current_id(request)
Poser le cookie de session (sécurisé) Session.set_cookie(response, id)
Lire / poser un cookie applicatif Cookies.get / Cookies.set
Message flash, sans redirection Flash.set / Flash.get
Message flash sur POST→redirect BaseController.redirect(..., flash="…") (Forge)

Les frontières à garder en tête

  • Le noyau reste minimal et explicite.
    Vos façades ne font que regrouper des briques du core ; elles ne contiennent aucune logique propre.
    La sécurité (durcissement __Host-, validation, CSRF) vit dans le core, jamais dans la façade.
  • Une façade = un concern.
    Session (store), Cookies (cookies génériques), Flash (messages).
    Pas de classe fourre-tout.
  • C'est votre code.
    Ces fichiers vous appartiennent : étendez-les selon vos besoins (nouvelle méthode, nouvelle façade).
    Forge ne les impose ni ne les réécrit.
  • Limite connue : un seul Set-Cookie par réponse (cf. palier Cookies).

À retenir

  • L'ergonomie est la responsabilité de l'application : ces façades sont du sucre côté projet, le noyau Forge n'en porte aucune.
  • Une base Facade commune évite de répéter le garde « non instanciable ».
  • Déléguez toujours au core ; ne dupliquez pas sa logique.

Vous savez maintenant construire des façades de confort propres, sans alourdir le noyau.
Réappliquez le même patron pour tout autre regroupement utile à votre projet.