PluginProbe
Media Cloud Sync / 1.2.5
Media Cloud Sync v1.2.5
1.4.2 1.4.1 1.4.0 1.3.12 1.3.11 1.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.2.0 1.2.10 1.2.11 1.2.12 1.2.13 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 All 36 releases
media-cloud-sync / includes / sdk / s3 / GuzzleHttp / Cookie / SessionCookieJar.php

SessionCookieJar.php in Media Cloud Sync 1.2.5, at includes/sdk/s3/GuzzleHttp/Cookie/SessionCookieJar.php

68 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Dudlewebs\WPMCS\s3\GuzzleHttp\Cookie;
4
5 /**
6 * Persists cookies in the client session
7 */
8 class SessionCookieJar extends 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 (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 SetCookie($cookie));
62 }
63 } elseif (\strlen($data)) {
64 throw new \RuntimeException("Invalid cookie data");
65 }
66 }
67 }
68