/** * Updates the cookie store from a Request/Response pair. * * @param Request $request * @param Response $response * * @return void */ public function update(Request $request, Response $response) { $origin = CookieOrigin::createFromRequest($request); foreach ($response->getCookies() as $cookie) { $this->addCookie($cookie, $origin); } }
/** * Returns whether the Cookie matches the given origin. * * @param CookieOrigin $origin * * @return boolean */ public function matches(CookieOrigin $origin) { if ($this->cookie->isSecure() && !$origin->isSecure()) { return false; } $requestHost = explode('.', strtolower($origin->getHost())); $cookieDomain = explode('.', $this->domain); if ($this->hostOnly && $requestHost != $cookieDomain) { return false; } if (count($requestHost) < count($cookieDomain)) { return false; } if (array_slice($requestHost, -count($cookieDomain)) != $cookieDomain) { return false; } $path = self::getPathDirectory($origin->getPath()); if (substr($path, 0, strlen($this->path)) != $this->path) { return false; } return true; }
/** * @param Request $request * * @return array */ private function getCookiesForRequest(Request $request) { return $this->cookieStore->getAsArray(CookieOrigin::createFromRequest($request)); }