PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.20.0
GiveWP – Donation Plugin and Fundraising Platform v2.20.0
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 / symfony / http-foundation / Session / Storage / MetadataBag.php
give / vendor / symfony / http-foundation / Session / Storage Last commit date
Handler 4 years ago Proxy 4 years ago MetadataBag.php 4 years ago MockArraySessionStorage.php 4 years ago MockFileSessionStorage.php 4 years ago NativeSessionStorage.php 4 years ago PhpBridgeSessionStorage.php 4 years ago SessionStorageInterface.php 4 years ago
MetadataBag.php
169 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
12 namespace Symfony\Component\HttpFoundation\Session\Storage;
13
14 use Symfony\Component\HttpFoundation\Session\SessionBagInterface;
15
16 /**
17 * Metadata container.
18 *
19 * Adds metadata to the session.
20 *
21 * @author Drak <drak@zikula.org>
22 */
23 class MetadataBag implements SessionBagInterface
24 {
25 const CREATED = 'c';
26 const UPDATED = 'u';
27 const LIFETIME = 'l';
28
29 /**
30 * @var string
31 */
32 private $name = '__metadata';
33
34 /**
35 * @var string
36 */
37 private $storageKey;
38
39 /**
40 * @var array
41 */
42 protected $meta = [self::CREATED => 0, self::UPDATED => 0, self::LIFETIME => 0];
43
44 /**
45 * Unix timestamp.
46 *
47 * @var int
48 */
49 private $lastUsed;
50
51 /**
52 * @var int
53 */
54 private $updateThreshold;
55
56 /**
57 * @param string $storageKey The key used to store bag in the session
58 * @param int $updateThreshold The time to wait between two UPDATED updates
59 */
60 public function __construct($storageKey = '_sf2_meta', $updateThreshold = 0)
61 {
62 $this->storageKey = $storageKey;
63 $this->updateThreshold = $updateThreshold;
64 }
65
66 /**
67 * {@inheritdoc}
68 */
69 public function initialize(array &$array)
70 {
71 $this->meta = &$array;
72
73 if (isset($array[self::CREATED])) {
74 $this->lastUsed = $this->meta[self::UPDATED];
75
76 $timeStamp = time();
77 if ($timeStamp - $array[self::UPDATED] >= $this->updateThreshold) {
78 $this->meta[self::UPDATED] = $timeStamp;
79 }
80 } else {
81 $this->stampCreated();
82 }
83 }
84
85 /**
86 * Gets the lifetime that the session cookie was set with.
87 *
88 * @return int
89 */
90 public function getLifetime()
91 {
92 return $this->meta[self::LIFETIME];
93 }
94
95 /**
96 * Stamps a new session's metadata.
97 *
98 * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value
99 * will leave the system settings unchanged, 0 sets the cookie
100 * to expire with browser session. Time is in seconds, and is
101 * not a Unix timestamp.
102 */
103 public function stampNew($lifetime = null)
104 {
105 $this->stampCreated($lifetime);
106 }
107
108 /**
109 * {@inheritdoc}
110 */
111 public function getStorageKey()
112 {
113 return $this->storageKey;
114 }
115
116 /**
117 * Gets the created timestamp metadata.
118 *
119 * @return int Unix timestamp
120 */
121 public function getCreated()
122 {
123 return $this->meta[self::CREATED];
124 }
125
126 /**
127 * Gets the last used metadata.
128 *
129 * @return int Unix timestamp
130 */
131 public function getLastUsed()
132 {
133 return $this->lastUsed;
134 }
135
136 /**
137 * {@inheritdoc}
138 */
139 public function clear()
140 {
141 // nothing to do
142 }
143
144 /**
145 * {@inheritdoc}
146 */
147 public function getName()
148 {
149 return $this->name;
150 }
151
152 /**
153 * Sets name.
154 *
155 * @param string $name
156 */
157 public function setName($name)
158 {
159 $this->name = $name;
160 }
161
162 private function stampCreated($lifetime = null)
163 {
164 $timeStamp = time();
165 $this->meta[self::CREATED] = $this->meta[self::UPDATED] = $this->lastUsed = $timeStamp;
166 $this->meta[self::LIFETIME] = (null === $lifetime) ? ini_get('session.cookie_lifetime') : $lifetime;
167 }
168 }
169