Class CookieCollection
Cookie Collection
Provides an immutable collection of cookies objects. Adding or removing to a collection returns a new collection that you must retain.
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
-
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 the first cookie by name.
-
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.
Method Detail
__construct() ¶ public
__construct(array $cookies = [])
Constructor
Parameters
-
array$cookies optional Array of cookie objects
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
InvalidArgumentExceptioncreateFromHeader() ¶ 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 $name): Cake\Http\Cookie\CookieInterface|null
Get the first cookie by name.
Parameters
-
string$name The name of the cookie.
Returns
Cake\Http\Cookie\CookieInterface|nullhas() ¶ 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
array