<?php 
 
class SessionStorage implements JSONful\Session\Storage 
{ 
    static $xdata = array(); 
    public function __construct($id) 
    { 
        $this->id = $id ?: uniqid(true); 
        $this->data = array(); 
        if (!empty(self::$xdata[$this->id])) { 
            $this->data = self::$xdata[$this->id]; 
        } 
    } 
 
    public function __destruct() 
    { 
        self::$xdata[$this->id] = $this->data; 
    } 
     
    public function get($name) 
    { 
        if (!array_key_exists($name, $this->data)) { 
            return null; 
        } 
        return $this->data[$name]; 
    } 
 
    public function set($name, $value) 
    { 
        $this->data[$name] = $value; 
        return $this; 
    } 
 
    public function getAll() 
    { 
        return $this->data; 
    } 
 
    public function destroy() 
    { 
        $this->data = []; 
    } 
 
    public function getSessionId() 
    { 
        self::$xdata[$this->id] = $this->data; 
        return $this->id; 
    } 
} 
 
 |