<?php /** * MiniMVC * * Convention-based micro-framework for PHP * * @package miniMVC * @author Timothy J. Warren * @copyright Copyright (c) 2011 - 2012 * @link https://github.com/timw4mail/miniMVC * @license http://philsturgeon.co.uk/code/dbad-license */ // -------------------------------------------------------------------------- /** * Class to improve handling of PHP sessions * * @package miniMVC * @subpackage Libraries */ class MM_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(); // Create a unique session id to prevent collisions $sess_id = uniqid(uniqid(), TRUE); // Save a reference to the session for later access $_SESSION[$sess_id] = []; $this->sess =& $_SESSION[$sess_id]; } // -------------------------------------------------------------------------- /** * 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 php_session.php