<?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Authentication\Storage; use Zend\Session\Container as SessionContainer; use Zend\Session\ManagerInterface as SessionManager; class Session implements StorageInterface { /** * Default session namespace */ const NAMESPACE_DEFAULT = 'Zend_Auth'; /** * Default session object member name */ const MEMBER_DEFAULT = 'storage'; /** * Object to proxy $_SESSION storage * * @var SessionContainer */ protected $session; /** * Session namespace * * @var mixed */ protected $namespace = self::NAMESPACE_DEFAULT; /** * Session object member * * @var mixed */ protected $member = self::MEMBER_DEFAULT; /** * Sets session storage options and initializes session namespace object * * @param mixed $namespace * @param mixed $member * @param SessionManager $manager */ public function __construct($namespace = null, $member = null, SessionManager $manager = null) { if ($namespace !== null) { $this->namespace = $namespace; } if ($member !== null) { $this->member = $member; } $this->session = new SessionContainer($this->namespace, $manager); } /** * Returns the session namespace * * @return string */ public function getNamespace() { return $this->namespace; } /** * Returns the name of the session object member * * @return string */ public function getMember() { return $this->member; } /** * Defined by Zend\Authentication\Storage\StorageInterface * * @return bool */ public function isEmpty() { return !isset($this->session->{$this->member}); } /** * Defined by Zend\Authentication\Storage\StorageInterface * * @return mixed */ public function read() { return $this->session->{$this->member}; } /** * Defined by Zend\Authentication\Storage\StorageInterface * * @param mixed $contents * @return void */ public function write($contents) { $this->session->{$this->member} = $contents; } /** * Defined by Zend\Authentication\Storage\StorageInterface * * @return void */ public function clear() { unset($this->session->{$this->member}); } }