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 protectedarray<Cake\Http\Cookie\CookieInterface>Cookie objects 
Method Summary
- 
          __construct() publicConstructor 
- 
          add() publicAdd a cookie and get an updated collection. 
- 
          addFromResponse() publicCreate a new collection that includes cookies from the response. 
- 
          addToRequest() publicAdd cookies that match the path/domain/expiration to the request. 
- 
          checkCookies() protectedChecks if only valid cookie objects are in the array 
- 
          count() publicGet the number of cookies in the collection. 
- 
          createFromHeader() public staticCreate a Cookie Collection from an array of Set-Cookie Headers 
- 
          createFromServerRequest() public staticCreate a new collection from the cookies in a ServerRequest 
- 
          findMatchingCookies() protectedFind cookies matching the scheme, host, and path 
- 
          get() publicGet the first cookie by name. 
- 
          getIterator() publicGets the iterator 
- 
          has() publicCheck if a cookie with the given name exists 
- 
          remove() publicCreate a new collection with all cookies matching $name removed. 
- 
          removeExpiredCookies() protectedRemove expired cookies from the collection. 
Method Detail
__construct() ¶ public
__construct(array<Cake\Http\Cookie\CookieInterface> $cookies = [])Constructor
Parameters
- 
                array<Cake\Http\Cookie\CookieInterface>$cookies optional
- Array of cookie objects 
add() ¶ public
add(Cake\Http\Cookie\CookieInterface $cookie): staticAdd 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): staticCreate 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\RequestInterfaceAdd 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\RequestInterfaceAn updated request.
checkCookies() ¶ protected
checkCookies(array<Cake\Http\Cookie\CookieInterface> $cookies): voidChecks if only valid cookie objects are in the array
Parameters
- 
                array<Cake\Http\Cookie\CookieInterface>$cookies
- Array of cookie objects 
Returns
voidThrows
InvalidArgumentExceptioncreateFromHeader() ¶ public static
createFromHeader(array<string> $header, array<string, mixed> $defaults = []): staticCreate a Cookie Collection from an array of Set-Cookie Headers
Parameters
- 
                array<string>$header
- The array of set-cookie header values. 
- 
                array<string, mixed>$defaults optional
- The defaults attributes. 
Returns
staticcreateFromServerRequest() ¶ public static
createFromServerRequest(Psr\Http\Message\ServerRequestInterface $request): staticCreate 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<string, mixed>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<string, mixed>An array of cookie name/value pairs
get() ¶ public
get(string $name): Cake\Http\Cookie\CookieInterfaceGet 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(): Traversable<string, \Cake\Http\Cookie\CookieInterface>Gets the iterator
Returns
Traversable<string, \Cake\Http\Cookie\CookieInterface>has() ¶ public
has(string $name): boolCheck if a cookie with the given name exists
Parameters
- 
                string$name
- The cookie name to check. 
Returns
boolTrue if the cookie exists, otherwise false.
remove() ¶ public
remove(string $name): staticCreate 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): voidRemove 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