Class CookieComponent
Cookie Component.
Provides enhanced cookie handling features for use in the controller layer. In addition to the basic features offered be Cake\Network\Response, this class lets you:
- Create and read encrypted cookies.
- Store non-scalar data.
- Use hash compatible syntax to read/write/delete values.
- Cake\Controller\Component implements Cake\Event\EventListenerInterface uses Cake\Core\InstanceConfigTrait, Cake\Log\LogTrait
- Cake\Controller\Component\CookieComponent uses Cake\Utility\CookieCryptTrait
Link: http://book.cakephp.org/3.0/en/controllers/components/cookie.html
Located at Controller/Component/CookieComponent.php
Method Detail
_deletesource protected
_delete( string $name )
Sets a cookie expire time to remove cookie value.
This is only done once all values in a cookie key have been removed with delete.
Parameters
- string
$name
- Name of cookie
_getCookieEncryptionKeysource protected
_getCookieEncryptionKey( )
Returns the encryption key to be used.
Returns
string
string
_loadsource protected
_load( string|array $key )
Load the cookie data from the request and response objects.
Based on the configuration data, cookies will be decrypted. When cookies contain array data, that data will be expanded.
Parameters
- string|array
$key
- The key to load.
_writesource protected
_write( string $name , string $value )
Set cookie
Parameters
- string
$name
- Name for cookie
- string
$value
- Value for cookie
checksource public
check( string|null $key null )
Returns true if given key is set in the cookie.
Parameters
- string|null
$key
optional null - Key to check for
Returns
boolean
True if the key exists
configKeysource public
configKey( string $keyname , null|string|array $option null , string|null $value null )
Set the configuration for a specific top level key.
Examples:
Set a single config option for a key:
$this->Cookie->configKey('User', 'expires', '+3 months');
Set multiple options:
$this->Cookie->configKey('User', [ 'expires', '+3 months', 'httpOnly' => true, ]);
Parameters
- string
$keyname
- The top level keyname to configure.
- null|string|array
$option
optional null - Either the option name to set, or an array of options to set, or null to read config options for a given key.
- string|null
$value
optional null - Either the value to set, or empty when $option is an array.
Returns
array|null
array|null
deletesource public
delete( string $key )
Delete a cookie value
You must use this method before any output is sent to the browser. Failure to do so will result in header already sent errors.
Deleting a top level key will delete all keys nested within that key. For example deleting the User
key, will also delete User.email
.
Parameters
- string
$key
- Key of the value to be deleted
implementedEventssource public
implementedEvents( )
Events supported by this component.
Returns
array
array
Overrides
Cake\Controller\Component::implementedEvents()
initializesource public
initialize( array $config )
Initialize config data and properties.
Parameters
- array
$config
- The config data.
Overrides
Cake\Controller\Component::initialize()
readsource public
read( string|null $key null )
Read the value of key path from request cookies.
This method will also allow you to read cookies that have been written in this request, but not yet sent to the client.
Parameters
- string|null
$key
optional null - Key of the value to be obtained.
Returns
string
or null, value for specified key
writesource public
write( string|array $key , mixed $value null )
Write a value to the response cookies.
You must use this method before any output is sent to the browser. Failure to do so will result in header already sent errors.
Parameters
- string|array
$key
- Key for the value
- mixed
$value
optional null - Value
Methods inherited from Cake\Controller\Component
__constructsource public
__construct( Cake\Controller\ComponentRegistry $registry , array $config [] )
Constructor
Parameters
-
Cake\Controller\ComponentRegistry
$registry
- A ComponentRegistry this component can use to lazy load its components
- array
$config
optional [] - Array of configuration settings.
__debugInfosource public
__debugInfo( )
Returns an array that can be used to describe the internal state of this object.
Returns
array
array
__getsource public
__get( string $name )
Magic method for lazy loading $components.
Parameters
- string
$name
- Name of component to get.
Returns
mixed
A Component object or null.
Methods used from Cake\Utility\CookieCryptTrait
_checkCiphersource protected
_checkCipher( string $encrypt )
Helper method for validating encryption cipher names.
Parameters
- string
$encrypt
- The cipher name.
Throws
RuntimeException
When an invalid cipher is provided.
_decodesource protected
_decode( string $value , string|false $encrypt )
Decodes and decrypts a single value.
Parameters
- string
$value
- The value to decode & decrypt.
- string|false
$encrypt
- The encryption cipher to use.
Returns
string
Decoded value.
_decryptsource protected
_decrypt( array $values , string|boolean $mode )
Decrypts $value using public $type method in Security class
Parameters
- array
$values
- Values to decrypt
- string|boolean
$mode
- Encryption mode
Returns
string
decrypted string
_encryptsource protected
_encrypt( string $value , string|boolean $encrypt , string|null $key null )
Encrypts $value using public $type method in Security class
Parameters
- string
$value
- Value to encrypt
- string|boolean
$encrypt
- Encryption mode to use. False disabled encryption.
- string|null
$key
optional null - Used as the security salt only in this time for tests if specified.
Returns
string
Encoded values
_explodesource protected
_explode( string $string )
Explode method to return array from string set in CookieComponent::_implode() Maintains reading backwards compatibility with 1.x CookieComponent::_implode().
Parameters
- string
$string
- A string containing JSON encoded data, or a bare string.
Returns
array
Map of key and values
_implodesource protected
_implode( array $array )
Implode method to keep keys are multidimensional arrays
Parameters
- array
$array
- Map of key and values
Returns
string
A json encoded string.
Methods used from Cake\Core\InstanceConfigTrait
_configDeletesource protected
_configDelete( string $key )
Delete a single config key
Parameters
- string
$key
- Key to delete.
Throws
Cake\Core\Exception\Exception
if attempting to clobber existing config
_configReadsource protected
_configRead( string|null $key )
Read a config variable
Parameters
- string|null
$key
- Key to read.
Returns
mixed
mixed
_configWritesource protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Write a config variable
Parameters
- string|array
$key
- Key to write to.
- mixed
$value
- Value to write.
- boolean|string
$merge
optional false - True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.
Throws
Cake\Core\Exception\Exception
if attempting to clobber existing config
configsource public
config( string|array|null $key null , mixed|null $value null , boolean $merge true )
Usage
Reading the whole config:
$this->config();
Reading a specific value:
$this->config('key');
Reading a nested value:
$this->config('some.nested.key');
Setting a specific value:
$this->config('key', $value);
Setting a nested value:
$this->config('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->config(['one' => 'value', 'another' => 'value']);
Parameters
- string|array|null
$key
optional null - The key to get/set, or a complete array of configs.
- mixed|null
$value
optional null - The value to set.
- boolean
$merge
optional true - Whether to recursively merge or overwrite existing config, defaults to true.
Returns
mixed
Config value being read, or the object itself on write operations.
Throws
Cake\Core\Exception\Exception
When trying to set a key that is invalid.
configShallowsource public
configShallow( string|array $key , mixed|null $value null )
Merge provided config with existing config. Unlike config()
which does a recursive merge for nested keys, this method does a simple merge.
Setting a specific value:
$this->config('key', $value);
Setting a nested value:
$this->config('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->config(['one' => 'value', 'another' => 'value']);
Parameters
- string|array
$key
- The key to set, or a complete array of configs.
- mixed|null
$value
optional null - The value to set.
Returns
mixed
$this The object itself.
Methods used from Cake\Log\LogTrait
logsource public
log( mixed $msg , integer|string $level LogLevel::ERROR , string|array $context [] )
Convenience method to write a message to Log. See Log::write() for more information on writing to logs.
Parameters
- mixed
$msg
- Log message.
- integer|string
$level
optional LogLevel::ERROR - Error level.
- string|array
$context
optional [] - Additional log data relevant to this message.
Returns
boolean
Success of log write.
Properties summary
Properties inherited from Cake\Controller\Component
$_componentMapsource
protected array
A component lookup table used to lazy load component objects.
[]
$_registrysource
protected Cake\Controller\ComponentRegistry
Component registry class used to lazy load components.
Properties used from Cake\Core\InstanceConfigTrait
$_configInitializedsource
protected boolean
Whether the config property has already been configured with defaults
false
Properties used from Cake\Utility\CookieCryptTrait
© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.Controller.Component.CookieComponent.html