PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 18.5
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v18.5
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 18.5, at vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php

68 lines 2.0 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 /** @var string session key */
11 private $sessionKey;
12 /** @var bool Control whether to persist session cookies or not. */
13 private $storeSessionCookies;
14 /**
15 * Create a new SessionCookieJar object
16 *
17 * @param string $sessionKey Session key name to store the cookie
18 * data in session
19 * @param bool $storeSessionCookies Set to true to store session cookies
20 * in the cookie jar.
21 */
22 public function __construct($sessionKey, $storeSessionCookies = \false)
23 {
24 parent::__construct();
25 $this->sessionKey = $sessionKey;
26 $this->storeSessionCookies = $storeSessionCookies;
27 $this->load();
28 }
29 /**
30 * Saves cookies to session when shutting down
31 */
32 public function __destruct()
33 {
34 $this->save();
35 }
36 /**
37 * Save cookies to the client session
38 */
39 public function save()
40 {
41 $json = [];
42 foreach ($this as $cookie) {
43 /** @var SetCookie $cookie */
44 if (\YoastSEO_Vendor\GuzzleHttp\Cookie\CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
45 $json[] = $cookie->toArray();
46 }
47 }
48 $_SESSION[$this->sessionKey] = \json_encode($json);
49 }
50 /**
51 * Load the contents of the client session into the data array
52 */
53 protected function load()
54 {
55 if (!isset($_SESSION[$this->sessionKey])) {
56 return;
57 }
58 $data = \json_decode($_SESSION[$this->sessionKey], \true);
59 if (\is_array($data)) {
60 foreach ($data as $cookie) {
61 $this->setCookie(new \YoastSEO_Vendor\GuzzleHttp\Cookie\SetCookie($cookie));
62 }
63 } elseif (\strlen($data)) {
64 throw new \RuntimeException("Invalid cookie data");
65 }
66 }
67 }
68