Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 /*
|
Chris@0
|
4 * This file is part of the Symfony package.
|
Chris@0
|
5 *
|
Chris@0
|
6 * (c) Fabien Potencier <fabien@symfony.com>
|
Chris@0
|
7 *
|
Chris@0
|
8 * For the full copyright and license information, please view the LICENSE
|
Chris@0
|
9 * file that was distributed with this source code.
|
Chris@0
|
10 */
|
Chris@0
|
11
|
Chris@0
|
12 namespace Symfony\Component\HttpFoundation\Session\Storage\Proxy;
|
Chris@0
|
13
|
Chris@0
|
14 /**
|
Chris@0
|
15 * @author Drak <drak@zikula.org>
|
Chris@0
|
16 */
|
Chris@0
|
17 abstract class AbstractProxy
|
Chris@0
|
18 {
|
Chris@0
|
19 /**
|
Chris@0
|
20 * Flag if handler wraps an internal PHP session handler (using \SessionHandler).
|
Chris@0
|
21 *
|
Chris@0
|
22 * @var bool
|
Chris@0
|
23 */
|
Chris@0
|
24 protected $wrapper = false;
|
Chris@0
|
25
|
Chris@0
|
26 /**
|
Chris@0
|
27 * @var string
|
Chris@0
|
28 */
|
Chris@0
|
29 protected $saveHandlerName;
|
Chris@0
|
30
|
Chris@0
|
31 /**
|
Chris@0
|
32 * Gets the session.save_handler name.
|
Chris@0
|
33 *
|
Chris@0
|
34 * @return string
|
Chris@0
|
35 */
|
Chris@0
|
36 public function getSaveHandlerName()
|
Chris@0
|
37 {
|
Chris@0
|
38 return $this->saveHandlerName;
|
Chris@0
|
39 }
|
Chris@0
|
40
|
Chris@0
|
41 /**
|
Chris@0
|
42 * Is this proxy handler and instance of \SessionHandlerInterface.
|
Chris@0
|
43 *
|
Chris@0
|
44 * @return bool
|
Chris@0
|
45 */
|
Chris@0
|
46 public function isSessionHandlerInterface()
|
Chris@0
|
47 {
|
Chris@0
|
48 return $this instanceof \SessionHandlerInterface;
|
Chris@0
|
49 }
|
Chris@0
|
50
|
Chris@0
|
51 /**
|
Chris@0
|
52 * Returns true if this handler wraps an internal PHP session save handler using \SessionHandler.
|
Chris@0
|
53 *
|
Chris@0
|
54 * @return bool
|
Chris@0
|
55 */
|
Chris@0
|
56 public function isWrapper()
|
Chris@0
|
57 {
|
Chris@0
|
58 return $this->wrapper;
|
Chris@0
|
59 }
|
Chris@0
|
60
|
Chris@0
|
61 /**
|
Chris@0
|
62 * Has a session started?
|
Chris@0
|
63 *
|
Chris@0
|
64 * @return bool
|
Chris@0
|
65 */
|
Chris@0
|
66 public function isActive()
|
Chris@0
|
67 {
|
Chris@0
|
68 return \PHP_SESSION_ACTIVE === session_status();
|
Chris@0
|
69 }
|
Chris@0
|
70
|
Chris@0
|
71 /**
|
Chris@0
|
72 * Gets the session ID.
|
Chris@0
|
73 *
|
Chris@0
|
74 * @return string
|
Chris@0
|
75 */
|
Chris@0
|
76 public function getId()
|
Chris@0
|
77 {
|
Chris@0
|
78 return session_id();
|
Chris@0
|
79 }
|
Chris@0
|
80
|
Chris@0
|
81 /**
|
Chris@0
|
82 * Sets the session ID.
|
Chris@0
|
83 *
|
Chris@0
|
84 * @param string $id
|
Chris@0
|
85 *
|
Chris@0
|
86 * @throws \LogicException
|
Chris@0
|
87 */
|
Chris@0
|
88 public function setId($id)
|
Chris@0
|
89 {
|
Chris@0
|
90 if ($this->isActive()) {
|
Chris@0
|
91 throw new \LogicException('Cannot change the ID of an active session');
|
Chris@0
|
92 }
|
Chris@0
|
93
|
Chris@0
|
94 session_id($id);
|
Chris@0
|
95 }
|
Chris@0
|
96
|
Chris@0
|
97 /**
|
Chris@0
|
98 * Gets the session name.
|
Chris@0
|
99 *
|
Chris@0
|
100 * @return string
|
Chris@0
|
101 */
|
Chris@0
|
102 public function getName()
|
Chris@0
|
103 {
|
Chris@0
|
104 return session_name();
|
Chris@0
|
105 }
|
Chris@0
|
106
|
Chris@0
|
107 /**
|
Chris@0
|
108 * Sets the session name.
|
Chris@0
|
109 *
|
Chris@0
|
110 * @param string $name
|
Chris@0
|
111 *
|
Chris@0
|
112 * @throws \LogicException
|
Chris@0
|
113 */
|
Chris@0
|
114 public function setName($name)
|
Chris@0
|
115 {
|
Chris@0
|
116 if ($this->isActive()) {
|
Chris@0
|
117 throw new \LogicException('Cannot change the name of an active session');
|
Chris@0
|
118 }
|
Chris@0
|
119
|
Chris@0
|
120 session_name($name);
|
Chris@0
|
121 }
|
Chris@0
|
122 }
|