PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 27.7
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v27.7
28.6 28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 All 130 releases
wordpress-seo / vendor_prefixed / guzzlehttp / guzzle / src / Cookie / SessionCookieJar.php

SessionCookieJar.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 27.7, at vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php

72 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace YoastSEO_Vendor\GuzzleHttp\Cookie;
4
5 /**
6 * Persists cookies in the client session
7 */
8 class SessionCookieJar extends \YoastSEO_Vendor\GuzzleHttp\Cookie\CookieJar
9 {
10 /**
11 * @var string session key
12 */
13 private $sessionKey;
14 /**
15 * @var bool Control whether to persist session cookies or not.
16 */
17 private $storeSessionCookies;
18 /**
19 * Create a new SessionCookieJar object
20 *
21 * @param string $sessionKey Session key name to store the cookie
22 * data in session
23 * @param bool $storeSessionCookies Set to true to store session cookies
24 * in the cookie jar.
25 */
26 public function __construct(string $sessionKey, bool $storeSessionCookies = \false)
27 {
28 parent::__construct();
29 $this->sessionKey = $sessionKey;
30 $this->storeSessionCookies = $storeSessionCookies;
31 $this->load();
32 }
33 /**
34 * Saves cookies to session when shutting down
35 */
36 public function __destruct()
37 {
38 $this->save();
39 }
40 /**
41 * Save cookies to the client session
42 */
43 public function save() : void
44 {
45 $json = [];
46 /** @var SetCookie $cookie */
47 foreach ($this as $cookie) {
48 if (\YoastSEO_Vendor\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
49 $json[] = $cookie->toArray();
50 }
51 }
52 $_SESSION[$this->sessionKey] = \json_encode($json);
53 }
54 /**
55 * Load the contents of the client session into the data array
56 */
57 protected function load() : void
58 {
59 if (!isset($_SESSION[$this->sessionKey])) {
60 return;
61 }
62 $data = \json_decode($_SESSION[$this->sessionKey], \true);
63 if (\is_array($data)) {
64 foreach ($data as $cookie) {
65 $this->setCookie(new \YoastSEO_Vendor\GuzzleHttp\Cookie\SetCookie($cookie));
66 }
67 } elseif (\strlen($data)) {
68 throw new \RuntimeException('Invalid cookie data');
69 }
70 }
71 }
72