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
-
remove() public
Create a new collection with all cookies matching $name removed.
-
removeExpiredCookies() protected
Remove expired cookies from the collection.
Method Detail
__construct() ¶ public
__construct(Cake\Http\Cookie\CookieInterface[] $cookies = [])
Constructor
Parameters
-
Cake\Http\Cookie\CookieInterface[]$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(Cake\Http\Cookie\CookieInterface[] $cookies): void
Checks if only valid cookie objects are in the array
Parameters
-
Cake\Http\Cookie\CookieInterface[]$cookies Array of cookie objects
Returns
voidThrows
InvalidArgumentExceptioncreateFromHeader() ¶ public static
createFromHeader(array $header, array $defaults = []): static
Create a Cookie Collection from an array of Set-Cookie Headers
Parameters
-
array$header The array of set-cookie header values.
-
array$defaults optional The defaults attributes.
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
Get the first cookie by name.
Parameters
-
string$name The name of the cookie.
Returns
Cake\Http\Cookie\CookieInterfaceThrows
InvalidArgumentExceptionIf cookie not found.
getIterator() ¶ public
getIterator(): Cake\Http\Cookie\CookieInterface[]
Gets the iterator
Returns
Cake\Http\Cookie\CookieInterface[]has() ¶ public
has(string $name): bool
Check if a cookie with the given name exists
Parameters
-
string$name The cookie name to check.
Returns
boolremove() ¶ 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
void