/** * Parses cookie value string, creating a [[Cookie]] instance. * @param string $cookieString cookie header string. * @return Cookie cookie object. */ private function parseCookie($cookieString) { $params = []; $pairs = explode(';', $cookieString); foreach ($pairs as $number => $pair) { $pair = trim($pair); if (strpos($pair, '=') === false) { $params[$this->normalizeCookieParamName($pair)] = true; } else { list($name, $value) = explode('=', $pair, 2); if ($number === 0) { $params['name'] = $name; $params['value'] = urldecode($value); } else { $params[$this->normalizeCookieParamName($name)] = urldecode($value); } } } $cookie = new Cookie(); foreach ($params as $name => $value) { if ($cookie->canSetProperty($name)) { // Cookie string may contain custom unsupported params $cookie->{$name} = $value; } } return $cookie; }