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