CCookieCollection
Package | system.web |
---|---|
Inheritance | class CCookieCollection » CMap » CComponent |
Implements | Countable, ArrayAccess, Traversable, IteratorAggregate |
Since | 1.0 |
Source Code | framework/web/CHttpRequest.php |
You normally access it via CHttpRequest::getCookies().
Since CCookieCollection extends from CMap, it can be used like an associative array as follows:
$cookies[$name]=new CHttpCookie($name,$value); // sends a cookie $value=$cookies[$name]->value; // reads a cookie value unset($cookies[$name]); // removes a cookie
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
count | integer | Returns the number of items in the map. | CMap |
iterator | CMapIterator | Returns an iterator for traversing the items in the list. | CMap |
keys | array | the key list | CMap |
readOnly | boolean | whether this map is read-only or not. | CMap |
request | CHttpRequest | the request instance | CCookieCollection |
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
cookies | array | list of validated cookies | CCookieCollection |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__construct() | Constructor. | CCookieCollection |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__unset() | Sets a component property to be null. | CComponent |
add() | Adds a cookie with the specified name. | CCookieCollection |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
clear() | Removes all items in the map. | CMap |
contains() | CMap | |
copyFrom() | Copies iterable data into the map. | CMap |
count() | Returns the number of items in the map. | CMap |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
getCount() | Returns the number of items in the map. | CMap |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getIterator() | Returns an iterator for traversing the items in the list. | CMap |
getKeys() | Returns the key list | CMap |
getReadOnly() | Returns whether this map is read-only or not. Defaults to false. | CMap |
getRequest() | Returns the request instance | CCookieCollection |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
itemAt() | Returns the item with the specified key. | CMap |
mergeArray() | Merges two or more arrays into one recursively. | CMap |
mergeWith() | Merges iterable data into the map. | CMap |
offsetExists() | Returns whether there is an element at the specified offset. | CMap |
offsetGet() | Returns the element at the specified offset. | CMap |
offsetSet() | Sets the element at the specified offset. | CMap |
offsetUnset() | Unsets the element at the specified offset. | CMap |
raiseEvent() | Raises an event. | CComponent |
remove() | Removes a cookie with the specified name. | CCookieCollection |
toArray() | CMap |
Protected Methods
Method | Description | Defined By |
---|---|---|
addCookie() | Sends a cookie. | CCookieCollection |
getCookies() | Returns list of validated cookies | CCookieCollection |
removeCookie() | Deletes a cookie. | CCookieCollection |
setReadOnly() | Sets whether this list is read-only or not | CMap |
Property Details
cookies property read-only
protected array getCookies()
list of validated cookies
request property read-only
public CHttpRequest getRequest()
the request instance
Method Details
__construct() method
public void __construct(CHttpRequest $request) | ||
$request | CHttpRequest | owner of this collection. |
public function __construct(CHttpRequest $request)
{
$this->_request=$request;
$this->copyfrom($this->getCookies());
$this->_initialized=true;
}
Constructor.
add() method
public void add(mixed $name, CHttpCookie $cookie) | ||
$name | mixed | Cookie name. |
$cookie | CHttpCookie | Cookie object. |
public function add($name,$cookie)
{
if($cookie instanceof CHttpCookie)
{
$this->remove($name);
parent::add($name,$cookie);
if($this->_initialized)
$this->addCookie($cookie);
}
else
throw new CException(Yii::t('yii','CHttpCookieCollection can only hold CHttpCookie objects.'));
}
Adds a cookie with the specified name. This overrides the parent implementation by performing additional operations for each newly added CHttpCookie object.
addCookie() method
protected void addCookie(CHttpCookie $cookie) | ||
$cookie | CHttpCookie | cookie to be sent |
protected function addCookie($cookie)
{
$value=$cookie->value;
if($this->_request->enableCookieValidation)
$value=Yii::app()->getSecurityManager()->hashData(serialize($value));
if(version_compare(PHP_VERSION,'5.2.0','>='))
setcookie($cookie->name,$value,$cookie->expire,$cookie->path,$cookie->domain,$cookie->secure,$cookie->httpOnly);
else
setcookie($cookie->name,$value,$cookie->expire,$cookie->path,$cookie->domain,$cookie->secure);
}
Sends a cookie.
getCookies() method
protected array getCookies() | ||
{return} | array | list of validated cookies |
protected function getCookies()
{
$cookies=array();
if($this->_request->enableCookieValidation)
{
$sm=Yii::app()->getSecurityManager();
foreach($_COOKIE as $name=>$value)
{
if(is_string($value) && ($value=$sm->validateData($value))!==false)
$cookies[$name]=new CHttpCookie($name,@unserialize($value));
}
}
else
{
foreach($_COOKIE as $name=>$value)
$cookies[$name]=new CHttpCookie($name,$value);
}
return $cookies;
}
getRequest() method
public CHttpRequest getRequest() | ||
{return} | CHttpRequest | the request instance |
public function getRequest()
{
return $this->_request;
}
remove() method
public CHttpCookie remove(mixed $name, array $options=array ( )) | ||
$name | mixed | Cookie name. |
$options | array | Cookie configuration array consisting of name-value pairs, available since 1.1.11. |
{return} | CHttpCookie | The removed cookie object. |
public function remove($name,$options=array())
{
if(($cookie=parent::remove($name))!==null)
{
if($this->_initialized)
{
$cookie->configure($options);
$this->removeCookie($cookie);
}
}
return $cookie;
}
Removes a cookie with the specified name. This overrides the parent implementation by performing additional cleanup work when removing a CHttpCookie object. Since version 1.1.11, the second parameter is available that can be used to specify the options of the CHttpCookie being removed. For example, this may be useful when dealing with ".domain.tld" where multiple subdomains are expected to be able to manage cookies:
$options=array('domain'=>'.domain.tld'); Yii::app()->request->cookies['foo']=new CHttpCookie('cookie','value',$options); Yii::app()->request->cookies->remove('cookie',$options);
removeCookie() method
protected void removeCookie(CHttpCookie $cookie) | ||
$cookie | CHttpCookie | cookie to be deleted |
protected function removeCookie($cookie)
{
if(version_compare(PHP_VERSION,'5.2.0','>='))
setcookie($cookie->name,'',0,$cookie->path,$cookie->domain,$cookie->secure,$cookie->httpOnly);
else
setcookie($cookie->name,'',0,$cookie->path,$cookie->domain,$cookie->secure);
}
Deletes a cookie.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CCookieCollection