Spec-Zone.ru › Yii 1.1
CCookieCollection 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
Защищенные свойства Свойство
Тип
Описание
Определено в 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
Подробное описание свойств protected array getCookies () список проверенных куки
public CHttpRequest getRequest () экземпляр запроса
Подробное описание методов Конструктор.
Исходный код: 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.
Исходный код: 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 ); } Отправляет куки.
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 ; } 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);
Исходный код: 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 ); } Удаляет куки.