Open Monograph Press  3.3.0
SessionCookieJar.php
1 <?php
2 namespace GuzzleHttp\Cookie;
3 
8 {
10  private $sessionKey;
11 
13  private $storeSessionCookies;
14 
23  public function __construct($sessionKey, $storeSessionCookies = false)
24  {
25  parent::__construct();
26  $this->sessionKey = $sessionKey;
27  $this->storeSessionCookies = $storeSessionCookies;
28  $this->load();
29  }
30 
34  public function __destruct()
35  {
36  $this->save();
37  }
38 
42  public function save()
43  {
44  $json = [];
45  foreach ($this as $cookie) {
47  if (CookieJar::shouldPersist($cookie, $this->storeSessionCookies)) {
48  $json[] = $cookie->toArray();
49  }
50  }
51 
52  $_SESSION[$this->sessionKey] = json_encode($json);
53  }
54 
58  protected function load()
59  {
60  if (!isset($_SESSION[$this->sessionKey])) {
61  return;
62  }
63  $data = json_decode($_SESSION[$this->sessionKey], true);
64  if (is_array($data)) {
65  foreach ($data as $cookie) {
66  $this->setCookie(new SetCookie($cookie));
67  }
68  } elseif (strlen($data)) {
69  throw new \RuntimeException("Invalid cookie data");
70  }
71  }
72 }
GuzzleHttp\Cookie
Definition: guzzlehttp/guzzle/src/Cookie/CookieJar.php:2
GuzzleHttp\Cookie\SetCookie
Definition: SetCookie.php:7
GuzzleHttp\Cookie\SessionCookieJar\__destruct
__destruct()
Definition: SessionCookieJar.php:40
GuzzleHttp\Cookie\CookieJar\shouldPersist
static shouldPersist(SetCookie $cookie, $allowSessionCookies=false)
Definition: guzzlehttp/guzzle/src/Cookie/CookieJar.php:82
GuzzleHttp\Cookie\SessionCookieJar\__construct
__construct($sessionKey, $storeSessionCookies=false)
Definition: SessionCookieJar.php:29
GuzzleHttp\Cookie\CookieJar\setCookie
setCookie(SetCookie $cookie)
Definition: guzzlehttp/guzzle/src/Cookie/CookieJar.php:165
GuzzleHttp\json_decode
json_decode($json, $assoc=false, $depth=512, $options=0)
Definition: guzzlehttp/guzzle/src/functions.php:301
GuzzleHttp\Cookie\SessionCookieJar\load
load()
Definition: SessionCookieJar.php:64
GuzzleHttp\Cookie\SessionCookieJar
Definition: SessionCookieJar.php:7
GuzzleHttp\Cookie\SessionCookieJar\save
save()
Definition: SessionCookieJar.php:48
GuzzleHttp\json_encode
json_encode($value, $options=0, $depth=512)
Definition: guzzlehttp/guzzle/src/functions.php:324
GuzzleHttp\Cookie\CookieJar
Definition: guzzlehttp/guzzle/src/Cookie/CookieJar.php:10