Class
CookieCollection
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.
Property Summary
-
$cookies protected
Cake\Http\Cookie\CookieInterface[]Cookie objects
Method Summary
-
__construct() public
Constructor
-
add() public
Add a cookie and get an updated collection.
-
addFromResponse() public
Create a new collection that includes cookies from the response.
-
addToRequest() public
Add cookies that match the path/domain/expiration to the request.
-
checkCookies() protected
Checks if only valid cookie objects are in the array
-
convertCookieToArray() protected
Convert the cookie into an array of its properties.
-
count() public
Get the number of cookies in the collection.
-
createFromHeader() public static
Create a Cookie Collection from an array of Set-Cookie Headers
-
createFromServerRequest() public static
Create a new collection from the cookies in a ServerRequest
-
findMatchingCookies() protected
Find cookies matching the scheme, host, and path
-
get() public
Get stored cookies for a URL.
-
getAll() public
Get all the stored cookies as arrays.
-
getIterator() public
Gets the iterator
-
has() public
Check if a cookie with the given name exists
-
parseSetCookieHeader() protected static
Parse Set-Cookie headers into array
-
remove() public
Create a new collection with all cookies matching $name removed.
-
removeExpiredCookies() protected
Remove expired cookies from the collection.
-
setRequestDefaults() protected
Apply path and host to the set of cookies if they are not set.
-
store() public
Store the cookies from a response.
Method Detail
__construct() ¶ public
__construct(array $cookies = [])
Constructor
Parameters
-
array$cookies optional
add() ¶ public
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
staticaddFromResponse() ¶ public
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
staticaddToRequest() ¶ public
addToRequest(Psr\Http\Message\RequestInterface $request, array $extraCookies = []): 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 optional 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\RequestInterfacecheckCookies() ¶ protected
checkCookies(array $cookies): void
Checks if only valid cookie objects are in the array
Parameters
-
array$cookies Array of cookie objects
Returns
voidThrows
InvalidArgumentExceptionconvertCookieToArray() ¶ protected
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
arraycreateFromHeader() ¶ public static
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
staticcreateFromServerRequest() ¶ public static
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
staticfindMatchingCookies() ¶ protected
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
arrayget() ¶ public
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
arrayhas() ¶ public
has(string $name): bool
Check if a cookie with the given name exists
Parameters
-
string$name The cookie name to check.
Returns
boolparseSetCookieHeader() ¶ protected static
parseSetCookieHeader(array $values): Cake\Http\Cookie\Cookie[]
Parse Set-Cookie headers into array
Parameters
-
array$values List of Set-Cookie Header values.
Returns
Cake\Http\Cookie\Cookie[]remove() ¶ public
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
staticremoveExpiredCookies() ¶ protected
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.
Returns
voidsetRequestDefaults() ¶ protected
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
arraystore() ¶ public
store(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
-
Response$response The response to read cookies from
-
string$url The request URL used for default host/path values.
Returns
void