. * * PHP version 5.1.6+ * * @category Security * @package PHPIDS * @author Mario Heiderich * @author Christian Matthies * @author Lars Strojny * @license http://www.gnu.org/licenses/lgpl.html LGPL * @link http://php-ids.org/ */ namespace IDS\Caching; /** * File caching wrapper * * This class inhabits functionality to get and set cache via session. * * @category Security * @package PHPIDS * @author Christian Matthies * @author Mario Heiderich * @author Lars Strojny * @copyright 2007-2009 The PHPIDS Group * @license http://www.gnu.org/licenses/lgpl.html LGPL * @link http://php-ids.org/ * @since Version 0.4 */ class SessionCache implements CacheInterface { /** * Caching type * * @var string */ private $type = null; /** * Cache configuration * * @var array */ private $config = null; /** * Holds an instance of this class * * @var object */ private static $cachingInstance = null; /** * Constructor * * @param string $type caching type * @param object $init the IDS_Init object * * @return void */ public function __construct($type, $init) { $this->type = $type; $this->config = $init->config['Caching']; } /** * Returns an instance of this class * * @param string $type caching type * @param object $init the IDS_Init object * * @return object $this */ public static function getInstance($type, $init) { if (!self::$cachingInstance) { self::$cachingInstance = new SessionCache($type, $init); } return self::$cachingInstance; } /** * Writes cache data into the session * * @param array $data the caching data * * @return object $this */ public function setCache(array $data) { $_SESSION['PHPIDS'][$this->type] = $data; return $this; } /** * Returns the cached data * * Note that this method returns false if either type or file cache is not set * * @return mixed cache data or false */ public function getCache() { if ($this->type && $_SESSION['PHPIDS'][$this->type]) { return $_SESSION['PHPIDS'][$this->type]; } return false; } }