PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.3.1
GiveWP – Donation Plugin and Fundraising Platform v3.3.1
4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / vendor-prefixed / symfony / http-foundation / Session / Session.php
give / vendor / vendor-prefixed / symfony / http-foundation / Session Last commit date
Attribute 2 years ago Flash 2 years ago Storage 2 years ago Session.php 2 years ago SessionBagInterface.php 2 years ago SessionBagProxy.php 2 years ago SessionInterface.php 2 years ago SessionUtils.php 2 years ago
Session.php
286 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 *
11 * Modified by impress-org on 23-January-2024 using Strauss.
12 * @see https://github.com/BrianHenryIE/strauss
13 */
14
15 namespace Give\Vendors\Symfony\Component\HttpFoundation\Session;
16
17 use Give\Vendors\Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag;
18 use Give\Vendors\Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface;
19 use Give\Vendors\Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
20 use Give\Vendors\Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;
21 use Give\Vendors\Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage;
22 use Give\Vendors\Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface;
23
24 /**
25 * @author Fabien Potencier <fabien@symfony.com>
26 * @author Drak <drak@zikula.org>
27 */
28 class Session implements SessionInterface, \IteratorAggregate, \Countable
29 {
30 protected $storage;
31
32 private $flashName;
33 private $attributeName;
34 private $data = [];
35 private $usageIndex = 0;
36
37 /**
38 * @param SessionStorageInterface $storage A SessionStorageInterface instance
39 * @param AttributeBagInterface $attributes An AttributeBagInterface instance, (defaults null for default AttributeBag)
40 * @param FlashBagInterface $flashes A FlashBagInterface instance (defaults null for default FlashBag)
41 */
42 public function __construct(SessionStorageInterface $storage = null, AttributeBagInterface $attributes = null, FlashBagInterface $flashes = null)
43 {
44 $this->storage = $storage ?: new NativeSessionStorage();
45
46 $attributes = $attributes ?: new AttributeBag();
47 $this->attributeName = $attributes->getName();
48 $this->registerBag($attributes);
49
50 $flashes = $flashes ?: new FlashBag();
51 $this->flashName = $flashes->getName();
52 $this->registerBag($flashes);
53 }
54
55 /**
56 * {@inheritdoc}
57 */
58 public function start()
59 {
60 return $this->storage->start();
61 }
62
63 /**
64 * {@inheritdoc}
65 */
66 public function has($name)
67 {
68 return $this->getAttributeBag()->has($name);
69 }
70
71 /**
72 * {@inheritdoc}
73 */
74 public function get($name, $default = null)
75 {
76 return $this->getAttributeBag()->get($name, $default);
77 }
78
79 /**
80 * {@inheritdoc}
81 */
82 public function set($name, $value)
83 {
84 $this->getAttributeBag()->set($name, $value);
85 }
86
87 /**
88 * {@inheritdoc}
89 */
90 public function all()
91 {
92 return $this->getAttributeBag()->all();
93 }
94
95 /**
96 * {@inheritdoc}
97 */
98 public function replace(array $attributes)
99 {
100 $this->getAttributeBag()->replace($attributes);
101 }
102
103 /**
104 * {@inheritdoc}
105 */
106 public function remove($name)
107 {
108 return $this->getAttributeBag()->remove($name);
109 }
110
111 /**
112 * {@inheritdoc}
113 */
114 public function clear()
115 {
116 $this->getAttributeBag()->clear();
117 }
118
119 /**
120 * {@inheritdoc}
121 */
122 public function isStarted()
123 {
124 return $this->storage->isStarted();
125 }
126
127 /**
128 * Returns an iterator for attributes.
129 *
130 * @return \ArrayIterator An \ArrayIterator instance
131 */
132 public function getIterator()
133 {
134 return new \ArrayIterator($this->getAttributeBag()->all());
135 }
136
137 /**
138 * Returns the number of attributes.
139 *
140 * @return int The number of attributes
141 */
142 public function count()
143 {
144 return \count($this->getAttributeBag()->all());
145 }
146
147 /**
148 * @return int
149 *
150 * @internal
151 */
152 public function getUsageIndex()
153 {
154 return $this->usageIndex;
155 }
156
157 /**
158 * @return bool
159 *
160 * @internal
161 */
162 public function isEmpty()
163 {
164 if ($this->isStarted()) {
165 ++$this->usageIndex;
166 }
167 foreach ($this->data as &$data) {
168 if (!empty($data)) {
169 return false;
170 }
171 }
172
173 return true;
174 }
175
176 /**
177 * {@inheritdoc}
178 */
179 public function invalidate($lifetime = null)
180 {
181 $this->storage->clear();
182
183 return $this->migrate(true, $lifetime);
184 }
185
186 /**
187 * {@inheritdoc}
188 */
189 public function migrate($destroy = false, $lifetime = null)
190 {
191 return $this->storage->regenerate($destroy, $lifetime);
192 }
193
194 /**
195 * {@inheritdoc}
196 */
197 public function save()
198 {
199 $this->storage->save();
200 }
201
202 /**
203 * {@inheritdoc}
204 */
205 public function getId()
206 {
207 return $this->storage->getId();
208 }
209
210 /**
211 * {@inheritdoc}
212 */
213 public function setId($id)
214 {
215 if ($this->storage->getId() !== $id) {
216 $this->storage->setId($id);
217 }
218 }
219
220 /**
221 * {@inheritdoc}
222 */
223 public function getName()
224 {
225 return $this->storage->getName();
226 }
227
228 /**
229 * {@inheritdoc}
230 */
231 public function setName($name)
232 {
233 $this->storage->setName($name);
234 }
235
236 /**
237 * {@inheritdoc}
238 */
239 public function getMetadataBag()
240 {
241 ++$this->usageIndex;
242
243 return $this->storage->getMetadataBag();
244 }
245
246 /**
247 * {@inheritdoc}
248 */
249 public function registerBag(SessionBagInterface $bag)
250 {
251 $this->storage->registerBag(new SessionBagProxy($bag, $this->data, $this->usageIndex));
252 }
253
254 /**
255 * {@inheritdoc}
256 */
257 public function getBag($name)
258 {
259 $bag = $this->storage->getBag($name);
260
261 return method_exists($bag, 'getBag') ? $bag->getBag() : $bag;
262 }
263
264 /**
265 * Gets the flashbag interface.
266 *
267 * @return FlashBagInterface
268 */
269 public function getFlashBag()
270 {
271 return $this->getBag($this->flashName);
272 }
273
274 /**
275 * Gets the attributebag interface.
276 *
277 * Note that this method was added to help with IDE autocompletion.
278 *
279 * @return AttributeBagInterface
280 */
281 private function getAttributeBag()
282 {
283 return $this->getBag($this->attributeName);
284 }
285 }
286