-
open
-
Une fonction de rappel avec la signature suivante :
open(string $savePath
, string $sessionName
): bool
La fonction de rappel open
fonctionne comme un constructeur
dans une classe, et est exécutée lorsque la session s'ouvre.
C'est la première fonction de rappel exécutée lorsque la session
démarre automatiquement ou manuellement avec la fonction
session_start(). La valeur retournée
est true
en cas de succès ou false
si une erreur survient.
-
close
-
Une fonction de rappel avec la signature suivante :
close(): bool
La fonction de rappel close
fonctionne comme un
destructeur dans une classe, et est exécutée une fois que la fonction
de rappel write de la session a terminé de s'exécuter. Elle est également
appelé lorsque la fonction session_write_close() est appelée.
La valeur retournée est true
en cas de succès, ou false
si une erreur
survient.
-
read
-
Une fonction de rappel avec la signature suivante :
read(string $sessionId
): string
La fonction de rappel read
doit toujours retournée
une chaîne linéarisée contenant les données de session encodées
ou une chaîne vide s'il n'y a aucune donnée à lire.
Cette fonction de rappel est appelée en interne par PHP lorsque la session
commence ou lorsque la fonction session_start() est appelée.
Avant que cette fonction de rappel ne soit invoquée, PHP invoquera
la fonction de rappel open
.
La valeur retournée par cette fonction de rappel doit être exactement du même
format de linéarisation que celui passé pour le stockage à la fonction
de rappel write
. La valeur retournée sera délinéarisée
automatiquement par PHP et utilisée pour peupler la variable superglobale
$_SESSION. Malgré le fait que les données ressemblent fortement
aux données issuées de la fonction serialize(), notez que c'est bien
un format différent, qui est spécifié via l'option de configuration
session.serialize_handler.
-
write
-
Une fonction de rappel avec la signature suivante :
write(string $sessionId
, string $data
): bool
La fonction de rappel write
est appelée lorsque la session
doit être sauvegardée et fermée. Cette fonction de rappel reçoit l'identifiant de
la session courante ainsi qu'une version linéarisée du contenu de la variable
superglobale $_SESSION. La méthode de linéarisation utilisée en
interne par PHP est spécifiée via l'option de configuration
session.serialize_handler.
Les données de session linéarisées passées à cette fonction de rappel doivent être
stockées en utilisant l'identifiant de session fournie. Lors de la récupération
de ces données, la fonction de rappel read
doit retourner
la valeur exacte, originalement passée à la fonction de rappel write
.
Cette fonction de rappel est invoquée lorsque PHP s'arrête ou explicitement
lorsque la fonction session_write_close() est appelée.
Notez qu'après l'exécution de cette fonction, PHP exécutera en interne la
fonction de rappel close
.
Note:
Le gestionnaire d'écriture n'est pas exécuté tant que le flux de sortie
n'aura pas été fermé. Aussi, la sortie des requêtes de débogage
du gestionnaire "write" ne sera jamais affichée dans le navigateur.
Si la sortie de débogage est nécessaire, il est suggéré qu'elle soit
plutôt orientée dans un fichier.
-
destroy
-
Une fonction de rappel avec la signature suivante :
destroy(string $sessionId
): bool
Cette fonction de rappel est exécutée lorsqu'une session est détruite
avec la fonction session_destroy() ou avec
session_regenerate_id() avec le paramètre de destruction définie
à true
. La valeur retournée doit être true
en cas de succès, ou false
si une
erreur survient.
-
gc
-
Une fonction de rappel avec la signature suivante :
gc(int $lifetime
): bool
La fonction de rappel de ramasse miettes (garbage collector) est invoquée en interne par PHP
périodiquement afin de purger les anciennes données de session. La fréquence
est contrôlé par les options de configuration
session.gc_probability et
session.gc_divisor.
La valeur de la durée de vie passée à cette fonction de rappel peut être
définie via l'option de configuration session.gc_maxlifetime.
La valeur retournée doit être true
en cas de succès, ou false
si une erreur survient.
-
create_sid
-
Une fonction de rappel avec la signature suivante :
create_sid(): string
Cette fonction de rappel est exécutée lorsqu'un nouvel ID de session
est nécessaire. Aucun paramètre n'est fourni, et la valeur retournée doit
être une chaîne de caractères qui est un ID de session valide pour votre
gestionnaire.
-
validate_sid
-
Une fonction de rappel avec la signature suivante :
validate_sid(string $key
): bool
Cette fonction de rappel est exécuté quand une session va démarrer, un ID
de session est fournie et que
session.use_strict_mode
est activé.
key
est l'ID de session à valider.
Un ID de session est valide, si une session avec cet ID existe déjà.
La valeur de retour devrait être true
en cas de succès, false
en cas
d'échec.
-
update_timestamp
-
Une fonction de rappel avec la signature suivante :
update_timestamp(string $key
, string $val
): bool
Cette fonction de rappel est exécuté quand une session est mise à jour.
key
est l'ID de session, val
sont les données de session.
La valeur de retour devrait être true
en cas de succès, false
en cas
d'échec.
Nous montrons juste l'invocation ici, l'exemple complet peut être vu dans
la documentation de l'interface
SessionHandlerInterface.
Le dossier de travail courant change suivant les SAPIs si la session
est fermée à la fin du script. Il est possible de fermer la session
plus tard, grâce à la fonction session_write_close().