<?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 { // Combine traits for more dynamic behavior // but use Singleton for __invoke, so calling // that method does not create a new instance use JSObject, Singleton { Singleton::__invoke insteadof JSObject; } /** * Reference to session superglobal * * @var array */ protected $sess = []; /** * Start a session */ protected function __construct() { session_start(); // Save a reference to the session for later access $_SESSION['MM_SESSION'] = (isset($_SESSION['MM_SESSION']) ?: []; $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(); } } // End of session.php