Gestion personnalisée des sessions
Pour implémenter un stockage en base de données, ou toute autre méthode, vous aurez besoin de la fonction session_set_save_handler() pour paramétrer vos propres fonctions de stockage. Depuis PHP 5.4.0, vous pouvez créer des gestionnaires de session en utilisant l'interface SessionHandlerInterface ou en étendant les gestionnaires internes de PHP en héritant de la classe SessionHandler.
Les fonctions de rappel précisées dans session_set_save_handler() sont
des méthodes appelées par PHP pendant le cycle de vie de la session: open
,
read
, write
et close
ainsi que les fonctions de ménage destroy
pour supprimer une session
et gc
pour une collecte périodique des gabarits.
Ainsi, PHP a toujours besoin d'un gestionnaire de sessions. Par défaut il s'agit du gestionnaire
interne 'files'. Un gestionnaire personnalisé peut être indiqué au moyen de
session_set_save_handler(). D'autres gestionnaires alternatifs peuvent être proposés
par des extensions PHP, comme sqlite
, memcache
et memcached
et peuvent être utilisés via
session.save_handler.
Lorsque la session démarre, PHP appelera en interne la fonction open
du gestionnaire, suivie de
read
qui doit alors retourner une chaine encodée exactement comme elle a été passée lors du stockage.
Une fois que la fonction de rappel de read
a retourné sa chaine, PHP va alors la décoder
et peupler la super-globale $_SESSION en conséquence.
Lorsque PHP se termine, (ou lorsque session_write_close() est appelée), il va en
interne encoder le contenu de $_SESSION et le passer avec l'ID de session à la
fonction write
. Après write
, PHP invoquera close
.
Lorsqu'une session est détruite, PHP appelera destroy
avec l'ID de session.
PHP appelera la fonction de rappel gc
de temps en temps pour nettoyer
les sessions expirées en fonction de leur
temps de vie maximum. Cet appel devrait mener à la destruction des enregistrements dans
le support de stockage qui n'ont été accédés depuis $lifetime
.
Version en cache
23/12/2024 00:41:47 Cette version de la page est en cache (à la date du 23/12/2024 00:41:47) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-session.customhandler.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.