\Cake\Http\ClientCookieCollection

Container class for cookies used in Http\Client.

Provides cookie jar like features for storing cookies between requests, as well as appending cookies to new requests.

Summary

Methods
Properties
Constants
__construct()
createFromHeader()
createFromServerRequest()
count()
add()
get()
has()
remove()
getIterator()
addToRequest()
addFromResponse()
store()
getAll()
No public properties found
No constants found
checkCookies()
findMatchingCookies()
setRequestDefaults()
parseSetCookieHeader()
removeExpiredCookies()
convertCookieToArray()
$cookies
N/A
No private methods found
No private properties found
N/A

Properties

Methods

__construct()

__construct(array  $cookies = array()) 

Constructor

Parameters

array $cookies

Array of cookie objects

createFromHeader()

createFromHeader(array  $header) : static

Create a Cookie Collection from an array of Set-Cookie Headers

Parameters

array $header

The array of set-cookie header values.

Returns

static

createFromServerRequest()

createFromServerRequest(\Psr\Http\Message\ServerRequestInterface  $request) : static

Create a new collection from the cookies in a ServerRequest

Parameters

\Psr\Http\Message\ServerRequestInterface $request

The request to extract cookie data from

Returns

static

count()

count() : integer

Get the number of cookies in the collection.

Returns

integer

add()

add(\Cake\Http\Cookie\CookieInterface  $cookie) : static

Add a cookie and get an updated collection.

Cookies are stored by id. This means that there can be duplicate cookies if a cookie collection is used for cookies across multiple domains. This can impact how get(), has() and remove() behave.

Parameters

\Cake\Http\Cookie\CookieInterface $cookie

Cookie instance to add.

Returns

static

get()

get(string  $url) : array

Get stored cookies for a URL.

Finds matching stored cookies and returns a simple array of name => value

Parameters

string $url

The URL to find cookies for.

Returns

array

has()

has(string  $name) : boolean

Check if a cookie with the given name exists

Parameters

string $name

The cookie name to check.

Returns

boolean —

True if the cookie exists, otherwise false.

remove()

remove(string  $name) : static

Create a new collection with all cookies matching $name removed.

If the cookie is not in the collection, this method will do nothing.

Parameters

string $name

The name of the cookie to remove.

Returns

static

getIterator()

getIterator() : \ArrayIterator

Gets the iterator

Returns

\ArrayIterator

addToRequest()

addToRequest(\Psr\Http\Message\RequestInterface  $request, array  $extraCookies = array()) : \Psr\Http\Message\RequestInterface

Add cookies that match the path/domain/expiration to the request.

This allows CookieCollections to be used as a 'cookie jar' in an HTTP client situation. Cookies that match the request's domain + path that are not expired when this method is called will be applied to the request.

Parameters

\Psr\Http\Message\RequestInterface $request

The request to update.

array $extraCookies

Associative array of additional cookies to add into the request. This is useful when you have cookie data from outside the collection you want to send.

Returns

\Psr\Http\Message\RequestInterface

An updated request.

addFromResponse()

addFromResponse(\Psr\Http\Message\ResponseInterface  $response, \Psr\Http\Message\RequestInterface  $request) : static

Create a new collection that includes cookies from the response.

Parameters

\Psr\Http\Message\ResponseInterface $response

Response to extract cookies from.

\Psr\Http\Message\RequestInterface $request

Request to get cookie context from.

Returns

static

store()

store(\Cake\Http\Client\Response  $response, string  $url) : void

Store the cookies from a response.

Store the cookies that haven't expired. If a cookie has been expired and is currently stored, it will be removed.

Parameters

\Cake\Http\Client\Response $response

The response to read cookies from

string $url

The request URL used for default host/path values.

getAll()

getAll() : array

Get all the stored cookies as arrays.

Returns

array

checkCookies()

checkCookies(array  $cookies) : void

Checks if only valid cookie objects are in the array

Parameters

array $cookies

Array of cookie objects

Throws

\InvalidArgumentException

findMatchingCookies()

findMatchingCookies(string  $scheme, string  $host, string  $path) : array

Find cookies matching the scheme, host, and path

Parameters

string $scheme

The http scheme to match

string $host

The host to match.

string $path

The path to match

Returns

array —

An array of cookie name/value pairs

setRequestDefaults()

setRequestDefaults(array  $cookies, string  $host, string  $path) : array

Apply path and host to the set of cookies if they are not set.

Parameters

array $cookies

An array of cookies to update.

string $host

The host to set.

string $path

The path to set.

Returns

array —

An array of updated cookies.

parseSetCookieHeader()

parseSetCookieHeader(array  $values) : array<mixed,\Cake\Http\Cookie\Cookie>

Parse Set-Cookie headers into array

Parameters

array $values

List of Set-Cookie Header values.

Returns

array<mixed,\Cake\Http\Cookie\Cookie> —

An array of cookie objects

removeExpiredCookies()

removeExpiredCookies(string  $host, string  $path) : void

Remove expired cookies from the collection.

Parameters

string $host

The host to check for expired cookies on.

string $path

The path to check for expired cookies on.

convertCookieToArray()

convertCookieToArray(\Cake\Http\Cookie\CookieInterface  $cookie) : array

Convert the cookie into an array of its properties.

Primarily useful where backwards compatibility is needed.

Parameters

\Cake\Http\Cookie\CookieInterface $cookie

Cookie object.

Returns

array