Het session object heeft een static functie initialize, deze controleert of de sessie reeds bestaat en pakt de data uit met unserialize :
Session::initialize();
Opvragen van de session instance :
$session = Session::instance();
De session klasse :
class Session { private static $instance;public static function initialize() { if ($_SESSION['session']) { $session = unserialize($_SESSION['session']); } if ($session instanceof Session) { self::$instance = $session; } elseif (!$session instanceof Session) { self::$instance = new Session; } register_shutdown_function(array('Session', 'shutdown')); }
public static function instance() { return self::$instance; }
public static function destroy() { unset($_SESSION['session']); self::$instance = null; }
public static function shutdown() { $_SESSION['session'] = serialize(self::$instance); } }
De instantie van de sessie wordt gecomprimeerd opgeslagen met serialize.
Optioneel : Genereren van een security -token en deze vergelijken tijdens het uitpakken, zo kan de sessie data niet tussentijds worden aangepast.
Opmerking : Vergeet niet op de 1e regel van de PHP source toe te voegen :
session_start();Meer informatie : PHP: Sessions - Manual