<?php /** * MiniMVC * * Convention-based micro-framework for PHP * * @package miniMVC * @author Timothy J. Warren * @copyright Copyright (c) 2011 - 2012 * @link https://github.com/aviat4ion/miniMVC * @license http://philsturgeon.co.uk/code/dbad-license */ // -------------------------------------------------------------------------- namespace miniMVC; /** * Class to improve handling of PHP sessions * * @package miniMVC * @subpackage Libraries */ class Session { /** * Reference to session superglobal * * @var array */ protected $sess = array(); /** * Reference to current instance * * @var Session */ protected static $instance; /** * Start a session */ protected function __construct() { session_start(); // Save a reference to the session for later access $_SESSION['MM_SESSION'] = (isset($_SESSION['MM_SESSION'])) ?: array(); $this->sess =& $_SESSION['MM_SESSION']; } // -------------------------------------------------------------------------- /** * Set a session value * * @param string $key * @param mixed $val * @return void */ public function __set($key, $val) { $this->sess[$key] = $val; } // -------------------------------------------------------------------------- /** * Retreive a session value * * @param string $key * @return mixed */ public function __get($key) { return $this->sess[$key]; } // -------------------------------------------------------------------------- /** * Destroy a session * * @return void */ public function destroy() { sess_destroy(); } // -------------------------------------------------------------------------- /** * Singleton getter function * * @return self */ public static function &get_instance() { if ( ! isset(self::$instance)) { $class = __CLASS__; self::$instance = new $class; } return self::$instance; } // -------------------------------------------------------------------------- /** * Magic function called when cloning an object */ public function __clone() { trigger_error('Clone is not allowed.', E_USER_ERROR); } } // End of session.php