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.

Namespace: Cake\Http\Cookie

Properties 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(array $cookies)

Constructor

Parameters

\Cake\Http\Cookie\CookieInterface[] $cookies optional

Array of cookie objects

add() public

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

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

addFromResponse() public

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

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

addToRequest() public

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

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\RequestInterface

An updated request.

checkCookies() protected

checkCookies(array $cookies)

Checks if only valid cookie objects are in the array

Parameters

\Cake\Http\Cookie\CookieInterface[] $cookies

Array of cookie objects

Throws

InvalidArgumentException

count() public

count()

Get the number of cookies in the collection.

Returns

int

createFromHeader() public static

createFromHeader(array $header, array $defaults)

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

static

createFromServerRequest() public static

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

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

findMatchingCookies() protected

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

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

get() public

get(string $name)

Get the first cookie by name.

Parameters

string $name

The name of the cookie.

Returns

\Cake\Http\Cookie\CookieInterface

Throws

InvalidArgumentException
If cookie not found.

getIterator() public

getIterator()

Gets the iterator

Returns

\Cake\Http\Cookie\CookieInterface[]

has() public

has(string $name)

Check if a cookie with the given name exists

Parameters

string $name

The cookie name to check.

Returns

bool

True if the cookie exists, otherwise false.

remove() public

remove(string $name)

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

removeExpiredCookies() protected

removeExpiredCookies(string $host, string $path)

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.

Property Detail

$cookies protected

Cookie objects

Type

\Cake\Http\Cookie\CookieInterface[]

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.1/class-Cake.Http.Cookie.CookieCollection.html