2023-03-11 12:04:29 +03:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Zend Framework (http://framework.zend.com/)
|
|
|
|
*
|
|
|
|
* @link http://github.com/zendframework/zf2 for the canonical source repository
|
2023-04-01 09:03:34 +03:00
|
|
|
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
|
2023-03-11 12:04:29 +03:00
|
|
|
* @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});
|
|
|
|
}
|
|
|
|
}
|