L'interface SessionHandlerInterface
(PHP 5 >= 5.4.0)
Introduction
SessionHandlerInterface est une interface qui définit un prototype pour la création d'un gestionnaire de session personnalisé. Afin de passer un gestionnaire de session personnalisé à la fonction session_set_save_handler() en utilisant son invocation OOP, la classe doit implémenter cette interface.
Notez que ces méthodes sont destinées à être appelées de manière interne par PHP, et non depuis l'espace utilisateur.
Synopsis de la classe
SessionHandlerInterface
{
/* Méthodes */
}Exemple #1 Exemple avec SessionHandlerInterface
<?php class MySessionHandler implements SessionHandlerInterface { private $savePath; public function open($savePath, $sessionName) { $this->savePath = $savePath; if (!is_dir($this->savePath)) { mkdir($this->savePath, 0777); } return true; } public function close() { return true; } public function read($id) { return (string)@file_get_contents("$this->savePath/sess_$id"); } public function write($id, $data) { return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true; } public function destroy($id) { $file = "$this->savePath/sess_$id"; if (file_exists($file)) { unlink($file); } return true; } public function gc($maxlifetime) { foreach (glob("$this->savePath/sess_*") as $file) { if (filemtime($file) + $maxlifetime < time() && file_exists($file)) { unlink($file); } } return true; } } $handler = new MySessionHandler(); session_set_save_handler($handler, true); session_start(); // enregistre/récupère des données avec $_SESSION
Sommaire
- SessionHandlerInterface::close — Ferme la session
- SessionHandlerInterface::destroy — Détruit une session
- SessionHandlerInterface::gc — Nettoie les vieilles sessions
- SessionHandlerInterface::open — Initialise la session
- SessionHandlerInterface::read — Lit les données de session
- SessionHandlerInterface::write — Ecrit les données de session