Spec-Zone.ru › Yii 1.1

CCookieCollection

Пакет system.web
Наследование класс CCookieCollection » CMap » CComponent
Реализует Countable, ArrayAccess, Traversable, IteratorAggregate
С версии 1.0
Исходный код framework/web/CHttpRequest.php
CCookieCollection реализует класс коллекции для хранения файлов cookie.

Обычно к нему обращаются через CHttpRequest::getCookies().

Поскольку CCookieCollection расширяет CMap, его можно использовать как ассоциативный массив следующим образом:
$cookies[$name]=new CHttpCookie($name,$value); // sends a cookie
$value=$cookies[$name]->value; // reads a cookie value
unset($cookies[$name]);  // removes a cookie

Общественные свойства

Свойство Тип Описание Определено в
count integer Возвращает количество элементов в карте. CMap
iterator CMapIterator Возвращает итератор для обхода элементов в списке. CMap
keys array список ключей CMap
readOnly boolean является ли эта карта только для чтения. CMap
request CHttpRequest экземпляр запроса CCookieCollection

Защищенные свойства

Свойство Тип Описание Определено в
cookies array список проверенных файлов cookie CCookieCollection

Общественные методы

Метод Описание Определено в
__call() Вызывает метод с указанным именем, который не является методом класса. CComponent
__construct() Конструктор. CCookieCollection
__get() Возвращает значение свойства, список обработчиков событий или поведение в зависимости от его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в null. CComponent
add() Добавляет файл cookie с указанным именем. CCookieCollection
asa() Возвращает объект поведения с указанным именем. CComponent
attachBehavior() Присоединяет поведение к этому компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли считать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
clear() Удаляет все элементы из карты. CMap
contains() CMap
copyFrom() Копирует данные итерируемых объектов в карту. CMap
count() Возвращает количество элементов в карте. CMap
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все присоединённые поведения. CComponent
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все присоединённые поведения. CComponent
evaluateExpression() Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. CComponent
getCount() Возвращает количество элементов в карте. CMap
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
getIterator() Возвращает итератор для обхода элементов в списке. CMap
getKeys() Возвращает список ключей CMap
getReadOnly() Возвращает значение, указывающее, является ли эта карта только для чтения. По умолчанию — false. CMap
getRequest() Возвращает экземпляр запроса CCookieCollection
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, содержит ли указанное событие прикреплённые обработчики. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
itemAt() Возвращает элемент с заданным ключом. CMap
mergeArray() Рекурсивно объединяет два или более массивов в один. CMap
mergeWith() Объединяет данные итерируемых объектов в карту. CMap
offsetExists() Возвращает значение, указывающее, существует ли элемент по указанному смещению. CMap
offsetGet() Возвращает элемент по указанному смещению. CMap
offsetSet() Устанавливает элемент по указанному смещению. CMap
offsetUnset() Удаляет элемент по указанному смещению. CMap
raiseEvent() Вызывает событие. CComponent
remove() Удаляет файл cookie с указанным именем. CCookieCollection
toArray() CMap

Защищённые методы

Метод Описание Определено в
addCookie() Отправляет куки. CCookieCollection
getCookies() Возвращает список проверенных куки CCookieCollection
removeCookie() Удаляет куки. CCookieCollection
setReadOnly() Устанавливает, является ли этот список только для чтения CMap

Подробное описание свойств

cookies свойство только для чтения

protected array getCookies()

список проверенных куки

request свойство только для чтения

public CHttpRequest getRequest()

экземпляр запроса

Подробное описание методов

__construct() метод

public void __construct(CHttpRequest $request)
$request CHttpRequest владелец этой коллекции.
Исходный код: framework/web/CHttpRequest.php#1413 (показать)
public function __construct(CHttpRequest $request)
{
    
$this->_request=$request;
    
$this->copyfrom($this->getCookies());
    
$this->_initialized=true;
}

Конструктор.

add() метод

public void add(mixed $name, CHttpCookie $cookie)
$name mixed Имя куки.
$cookie CHttpCookie Объект куки.
Исходный код: framework/web/CHttpRequest.php#1459 (показать)
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.'));
}

Добавляет куки с указанным именем. Это переопределяет родительскую реализацию, выполняя дополнительные операции для каждого нового добавленного объекта CHttpCookie.

addCookie() метод

protected void addCookie(CHttpCookie $cookie)
$cookie CHttpCookie куки для отправки
Исходный код: framework/web/CHttpRequest.php#1508 (показать)
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);
}

Отправляет куки.

getCookies() метод

protected array getCookies()
{return} array список проверенных куки
Исходный код: framework/web/CHttpRequest.php#1431 (показать)
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() метод

public CHttpRequest getRequest()
{return} CHttpRequest экземпляр запроса
Исходный код: framework/web/CHttpRequest.php#1423 (показать)
public function getRequest()
{
    return 
$this->_request;
}

remove() метод

public CHttpCookie remove(mixed $name, array $options=array ( ))
$name mixed Имя куки.
$options array Массив конфигурации куки, состоящий из пар имя-значение, доступен начиная с 1.1.11.
{return} CHttpCookie Удаленный объект куки.
Исходный код: framework/web/CHttpRequest.php#1490 (показать)
public function remove($name,$options=array())
{
    if((
$cookie=parent::remove($name))!==null)
    {
        if(
$this->_initialized)
        {
            
$cookie->configure($options);
            
$this->removeCookie($cookie);
        }
    }

    return 
$cookie;
}

Удаляет куки с указанным именем. Это переопределяет родительскую реализацию, выполняя дополнительную очистку при удалении объекта CHttpCookie. С версии 1.1.11 доступен второй параметр, который может быть использован для указания опций удаляемой куки. Например, это может быть полезно при работе с ".domain.tld", где ожидается возможность управления куки для нескольких субдоменов:

$options=array('domain'=>'.domain.tld');
Yii::app()->request->cookies['foo']=new CHttpCookie('cookie','value',$options);
Yii::app()->request->cookies->remove('cookie',$options);

removeCookie() метод

protected void removeCookie(CHttpCookie $cookie)
$cookie CHttpCookie куки для удаления
Исходный код: framework/web/CHttpRequest.php#1523 (показать)
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);
}

Удаляет куки.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CCookieCollection

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API