This repository has been archived by the owner on Jan 8, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
/
Session.php
132 lines (118 loc) · 2.82 KB
/
Session.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @package Zend_Authentication
*/
namespace Zend\Authentication\Storage;
use Zend\Session\Container as SessionContainer;
use Zend\Session\ManagerInterface as SessionManager;
/**
* @category Zend
* @package Zend_Authentication
* @subpackage Storage
*/
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 boolean
*/
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});
}
}