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.

Cake\Http\Cookie\CookieCollection implements IteratorAggregate, Countable
Extended by Cake\Http\Client\CookieCollection
Namespace: Cake\Http\Client
Deprecated: 3.5.0 Use Cake\Http\Cookie\CookieCollection instead.
Location: Http/Client/CookieCollection.php

Inherited Properties

Method Summary

  • Convert the cookie into an array of its properties.
  • get() public
    Get stored cookies for a URL.
  • getAll() public
    Get all the stored cookies as arrays.
  • store() public
    Store the cookies from a response.

Method Detail

convertCookieToArray()source protected

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

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

array

get()source public

get( string $url )

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

array

Overrides

Cake\Http\Cookie\CookieCollection::get()

getAll()source public

getAll( )

Get all the stored cookies as arrays.

Returns

array

store()source public

store( Cake\Http\Client\Response $response , string $url )

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

Cake\Http\Client\Response $response
The response to read cookies from
string $url
The request URL used for default host/path values.

Methods inherited from Cake\Http\Cookie\CookieCollection

__construct()source public

__construct( array $cookies [] )

Constructor

Parameters

array $cookies optional []
Array of cookie objects

add()source 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

Cake\Http\Cookie\CookieCollection

addFromResponse()source 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

Cake\Http\Cookie\CookieCollection

addToRequest()source 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()source protected

checkCookies( array $cookies )

Checks if only valid cookie objects are in the array

Parameters

array $cookies
Array of cookie objects

Throws

InvalidArgumentException

count()source public

count( )

Get the number of cookies in the collection.

Returns

integer

Implementation of

Countable::count()

createFromHeader()source public static

createFromHeader( array $header )

Create a Cookie Collection from an array of Set-Cookie Headers

Parameters

array $header
The array of set-cookie header values.

Returns

Cake\Http\Cookie\CookieCollection

createFromServerRequest()source 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

Cake\Http\Cookie\CookieCollection

findMatchingCookies()source 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

getIterator()source public

getIterator( )

Gets the iterator

Returns

ArrayIterator

Implementation of

IteratorAggregate::getIterator()

has()source public

has( string $name )

Check if a cookie with the given name exists

Parameters

string $name
The cookie name to check.

Returns

boolean
True if the cookie exists, otherwise false.

parseSetCookieHeader()source protected static

parseSetCookieHeader( array $values )

Parse Set-Cookie headers into array

Parameters

array $values
List of Set-Cookie Header values.

Returns

Cake\Http\Cookie\Cookie[]
An array of cookie objects

remove()source 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

Cake\Http\Cookie\CookieCollection

removeExpiredCookies()source 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.

setRequestDefaults()source protected

setRequestDefaults( array $cookies , string $host , string $path )

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
An array of updated cookies.

© 2005–2017 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/3.4/class-Cake.Http.Client.CookieCollection.html