cookieJar = $cookieJar ?: new ArrayCookieJar(); } public static function getSubscribedEvents() { return array( 'request.before_send' => array('onRequestBeforeSend', 125), 'request.sent' => array('onRequestSent', 125) ); } /** * Get the cookie cookieJar * * @return CookieJarInterface */ public function getCookieJar() { return $this->cookieJar; } /** * Add cookies before a request is sent * * @param Event $event */ public function onRequestBeforeSend(Event $event) { $request = $event['request']; if (!$request->getParams()->get('cookies.disable')) { $request->removeHeader('Cookie'); // Find cookies that match this request foreach ($this->cookieJar->getMatchingCookies($request) as $cookie) { $request->addCookie($cookie->getName(), $cookie->getValue()); } } } /** * Extract cookies from a sent request * * @param Event $event */ public function onRequestSent(Event $event) { $this->cookieJar->addCookiesFromResponse($event['response'], $event['request']); } }