PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.8
Booking for Appointments and Events Calendar – Amelia v2.4.8
2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / guzzlehttp / guzzle / src / Cookie / SessionCookieJar.php
ameliabooking / vendor / guzzlehttp / guzzle / src / Cookie Last commit date
CookieJar.php 7 months ago CookieJarInterface.php 7 months ago FileCookieJar.php 7 months ago SessionCookieJar.php 7 months ago SetCookie.php 7 months ago
SessionCookieJar.php
78 lines
1 <?php
2
3 namespace AmeliaVendor\GuzzleHttp\Cookie;
4
5 /**
6 * Persists cookies in the client session
7 */
8 class SessionCookieJar extends CookieJar
9 {
10 /**
11 * @var string session key
12 */
13 private $sessionKey;
14
15 /**
16 * @var bool Control whether to persist session cookies or not.
17 */
18 private $storeSessionCookies;
19
20 /**
21 * Create a new SessionCookieJar object
22 *
23 * @param string $sessionKey Session key name to store the cookie
24 * data in session
25 * @param bool $storeSessionCookies Set to true to store session cookies
26 * in the cookie jar.
27 */
28 public function __construct(string $sessionKey, bool $storeSessionCookies = false)
29 {
30 parent::__construct();
31 $this->sessionKey = $sessionKey;
32 $this->storeSessionCookies = $storeSessionCookies;
33 $this->load();
34 }
35
36 /**
37 * Saves cookies to session when shutting down
38 */
39 public function __destruct()
40 {
41 $this->save();
42 }
43
44 /**
45 * Save cookies to the client session
46 */
47 public function save(): void
48 {
49 $json = [];
50 /** @var SetCookie $cookie */
51 foreach ($this as $cookie) {
52 if (CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
53 $json[] = $cookie->toArray();
54 }
55 }
56
57 $_SESSION[$this->sessionKey] = \json_encode($json);
58 }
59
60 /**
61 * Load the contents of the client session into the data array
62 */
63 protected function load(): void
64 {
65 if (!isset($_SESSION[$this->sessionKey])) {
66 return;
67 }
68 $data = \json_decode($_SESSION[$this->sessionKey], true);
69 if (\is_array($data)) {
70 foreach ($data as $cookie) {
71 $this->setCookie(new SetCookie($cookie));
72 }
73 } elseif (\strlen($data)) {
74 throw new \RuntimeException('Invalid cookie data');
75 }
76 }
77 }
78