Класс CookieComponent
Компонент Cookie.
Обработка куки для контроллера.
- CakeObject
-
Component
-
CookieComponent
Ссылка: https://book.cakephp.org/2.0/ru/core-libraries/components/cookie.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Controller/Component/CookieComponent.php
Резюме свойств
-
$_expiresprotectedВремя истечения действия кукиstring -
$_resetprotectedИспользуется для сброса времени куки, если $expire передан в CookieComponent::write()string - Ссылка на объект CakeResponse контроллера
$_responseprotected -
$_typeprotectedТип шифрования для использования.string -
$_valuesprotectedЗначения, хранящиеся в куки.string -
$domainpublicПуть до домена.string -
$httpOnlypublicКуки только для HTTPboolean -
$keypublicКлюч шифрования.string -
$namepublicИмя куки.string -
$pathpublicПуть к куки.string -
$securepublicКуки только для HTTPS.boolean -
$timepublicВремя, в течение которого куки будет оставаться действительной.mixed
Наследуемые свойства
Резюме методов
- __construct() publicКонструктор
- _decode() protectedДекодирует и расшифровывает одно значение.
- _decrypt() protectedРасшифровывает $value с помощью метода public $type в классе Security
- _delete() protectedУстанавливает время истечения действия куки для удаления значения куки
- _encrypt() protectedШифрует $value с помощью метода public $type в классе Security
- _expire() protectedУстанавливает время истечения действия переменной сессии.
- _explode() protected
Метод explode для возвращения массива из строки, установленной в CookieComponent::_implode() Сохраняет обратную совместимость чтения с 1.x CookieComponent::_implode().
- _implode() protectedМетод implode для сохранения ключей в многомерных массивах
- _write() protectedУстанавливает куки
- check() publicВозвращает true, если заданная переменная установлена в куки.
- delete() publicУдалить значение куки
- destroy() publicУничтожить текущую куки
- read() publicПрочитать значение $_COOKIE[$key];
- startup() publicЗапустить CookieComponent для использования в контроллере
- type() public
Позволяет переопределить метод шифрования по умолчанию. Используйте этот метод, например, в AppController::beforeFilter() до чтения или записи каких-либо куки.
- write() publicЗаписать значение в $_COOKIE[$key];
Детали методов
__construct()source public
__construct( ComponentCollection $collection , array $settings array() )
Конструктор
Параметры
-
ComponentCollection$collection - A ComponentCollection для этого компонента
- массив
$settingsнеобязательно array() - Массив настроек.
Переопределяет
Component::__construct() _decode()source protected
_decode( string $value )
Декодирует и расшифровывает одно значение.
Параметры
- строка
$value - Значение для декодирования и расшифровки.
Возвращает
строкаДекодированное значение.
_decrypt()source protected
_decrypt( array $values )
Расшифровывает $value с помощью метода public $type в классе Security
Параметры
- массив
$values - Значения для расшифровки
Возвращает
строкаРасшифрованная строка
_delete()source protected
_delete( string $name )
Устанавливает время истечения действия куки для удаления значения куки
Параметры
- строка
$name - Имя куки
_encrypt()source protected
_encrypt( string $value )
Шифрует $value с помощью метода public $type в классе Security
Параметры
- строка
$value - Значение для шифрования
Возвращает
строкаЗакодированные значения
_expire()source protected
_expire( integer|string $expires null )
Устанавливает время истечения действия переменной сессии.
Создаёт новое время истечения для переменной сессии. $expire может быть целым числом Unix timestamp или строкой даты.
Используется методом write() CookieComponent::write(string, string, boolean, 8400); CookieComponent::write(string, string, boolean, '5 Days');
Параметры
- целое число|строка
$expiresнеобязательно null - Может быть либо Unix timestamp, либо строкой даты
Возвращает
целое числоUnix timestamp
_explode()source protected
_explode( string $string )
Метод explode для возвращения массива из строки, установленной в CookieComponent::_implode() Сохраняет обратную совместимость чтения с 1.x CookieComponent::_implode().
Параметры
- строка
$string - Строка, содержащая данные, закодированные в формате JSON, или просто строка.
Возвращает
массивКарта ключей и значений
_implode()source protected
_implode( array $array )
Метод implode для сохранения ключей в многомерных массивах
Параметры
- массив
$array - Карта ключей и значений
Возвращает
строкаСтрока, закодированная в формате JSON.
_write()source protected
_write( string $name , string $value )
Установить cookie
Параметры
- строка
$name - Имя cookie
- строка
$value - Значение cookie
check()source public
check( string $key null )
Возвращает true, если заданная переменная установлена в cookie.
Параметры
- строка
$keyнеобязательно null - Имя переменной для проверки
Возвращаемое значение
booleanTrue, если переменная существует
delete()source public
delete( string $key )
Удалить значение cookie
Необязательно [Имя.], требуется ключ $this->Cookie->delete('Имя.ключ');
Этот метод необходимо использовать до отправки любого вывода в браузер. В противном случае произойдут ошибки "заголовок уже отправлен".
Этот метод удалит как значения верхнего уровня, так и значения cookie второго уровня. Например, предполагая, что $name = App, удаление User удалит как App[User] , так и любые другие значения cookie, такие как App[User][email] Это делается для очистки хранения cookie, существовавшего до версии 2.4.3, где cookie хранились несогласованно.
Параметры
- строка
$key - Ключ значения, подлежащего удалению
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/components/cookie.html#CookieComponent::deletedestroy()source public
destroy( )
Уничтожить текущее cookie
Этот метод необходимо использовать до отправки любого вывода в браузер. В противном случае произойдут ошибки "заголовок уже отправлен".
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/components/cookie.html#CookieComponent::destroyread()source public
read( string $key null )
Считывает значение $_COOKIE[$key];
Необязательно [Имя.], требуется ключ $this->Cookie->read(Имя.ключ);
Параметры
- строка
$keyнеобязательно null - Ключ значения для получения. Если не указан, получить все ключи => значения.
Возвращаемое значение
string|nullЗначение для указанного ключа
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/components/cookie.html#CookieComponent::readstartup()source public
startup( Controller $controller )
Инициализация CookieComponent для использования в контроллере
Параметры
-
Controller$controller - Экземпляр контроллера.
Переопределяет
Component::startup() type()source public
type( string $type 'cipher' )
Позволяет переопределить метод шифрования по умолчанию. Используйте этот метод, например, в AppController::beforeFilter() до чтения или записи cookie.
Параметры
- строка
$typeнеобязательно 'cipher' - Метод шифрования
write()source public
write( string|array $key , mixed $value null , boolean $encrypt true , integer|string $expires null )
Запись значения в $_COOKIE[$key];
Необязательно [Имя.], требуется ключ, необязательно $value, необязательно $encrypt, необязательно $expires $this->Cookie->write('[Имя.]ключ, $value);
По умолчанию все значения шифруются. Необходимо передать $encrypt false, чтобы сохранить значения в открытом виде.
Этот метод необходимо использовать до отправки любого вывода в браузер. В противном случае произойдут ошибки "заголовок уже отправлен".
Параметры
- строка|массив
$key - Ключ для значения
- смешанный
$valueнеобязательно null - Значение
- логический
$encryptнеобязательно true - Установите в значение true, чтобы зашифровать значение, в противном случае — false
- целое число/строка
$expiresнеобязательно null Может быть числом секунд до истечения срока действия cookie или совместимым с strtotime смещением времени.
Ссылка
https://book.cakephp.org/2.0/ru/core-libraries/components/cookie.html#CookieComponent::writeМетоды, унаследованные от Component
__get()source public
__get( string $name )
Магический метод для ленивой загрузки $components.
Параметры
- строка
$name - Имя компонента для получения.
Возвращаемое значение
смешанныйОбъект компонента или null.
beforeRedirect()source public
beforeRedirect( Controller $controller , string|array $url , integer $status null , boolean $exit true )
Вызывается перед Controller::redirect(). Позволяет заменить URL, на который будет перенаправлено, новым URL. Возвращаемое значение этого метода может быть массивом или строкой.
Если возвращаемое значение — массив и содержит ключ 'url', можно также указать следующее:
-
statusКод состояния перенаправления -
exitВыход при перенаправлении
Если ответ — строка или массив, не содержащий ключ 'url', он будет использован как новый URL для перенаправления.
Параметры
-
Controller$controller - Контроллер с компонентами для beforeRedirect
- строка|массив
$url - Строка или массив URL, на который происходит перенаправление.
- целое число
$statusнеобязательно null - Код состояния перенаправления
- логический
$exitнеобязательно true - Выход по завершении перенаправления
Возвращаемое значение
массив|nullМассив или null.
Ссылка
https://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRedirectbeforeRender()source public
beforeRender( Controller $controller )
Вызывается перед Controller::beforeRender(), перед загрузкой класса представления и перед Controller::render()
Параметры
-
Controller$controller - Контроллер с компонентами для beforeRender
Ссылка
https://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRenderinitialize()source public
initialize( Controller $controller )
Вызывается перед Controller::beforeFilter().
Параметры
-
Controller$controller - Контроллер с компонентами для инициализации
Ссылка
https://book.cakephp.org/2.0/ru/controllers/components.html#Component::initializeshutdown()source public
shutdown( Controller $controller )
Вызывается после Controller::render() и перед выводом в браузер.
Параметры
-
Controller$controller - Контроллер с компонентами для завершения работы
Ссылка
https://book.cakephp.org/2.0/ru/controllers/components.html#Component::shutdownМетоды, унаследованные от CakeObject
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства объекта $property со свойствами в определении $class. Значение свойства для этого класса будет объединено поверх значения $class.
Это предоставляет часть «DRY-магии» CakePHP. Если вы хотите отключить её, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойства с.
- логическое значение
$normalizeнеобязательно true - Установите в значение true, чтобы выполнить нормализацию свойств с помощью Hash::normalize() перед объединением.
_set()source protected
_set( array $properties array() )
Позволяет устанавливать несколько свойств объекта в одной строке кода. Будут установлены только те свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stop()source protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего скрипта. Оборачивает exit(), что облегчает тестирование.
Параметры
- целое число или строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethod()source public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет объектно-ориентированный обертку для call_user_func_array
Параметры
- строка
$method - Имя вызываемого метода
- массив
$paramsнеобязательно array() - Список параметров для использования при вызове $method
Возвращаемое значение
mixedВозвращает результат вызова метода
log()source public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Удобный метод для записи сообщения в CakeLog. Подробнее о записи в журналы см. CakeLog::write().
Параметры
- строка
$msg - Сообщение журнала
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|строка|массив
$scopeнеобязательно null Область(и), в которой создается сообщение журнала. Подробнее о областях ведения журнала см. CakeLog::config().
Возвращаемое значение
booleanРезультат успешной записи в журнал
requestAction()source public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любого места. Может использоваться для связи контроллеров или подключения плагинов к основному приложению. requestAction может использоваться для возвращения рендеренных представлений или получения возвращаемого значения из действий контроллера.
Под капотом этот метод использует Router::reverse() для преобразования параметра $url в строковый URL. Вы должны использовать форматы URL, совместимые с Router::reverse().
Передача данных POST и GET
Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет моделировать данные POST.
Параметры
- строка|массив
$url Строковый или массивный URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- массив
$extraнеобязательно array() Если массив включает ключ "return", он устанавливает AutoRender в значение true. Также может использоваться для отправки данных GET/POST, а также именованных/переданных аргументов.
Возвращаемое значение
mixedЛогическое значение true или false при успехе/неудачи или содержимое рендеренного действия, если в $extra установлен ключ 'return'.
toString()source public
toString( )
Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращаемое значение
строкаИмя этого класса
Подробное описание свойств
$_expiressource
protected строка
Время истечения срока действия cookie
Управляется CookieComponent::time;
$_resetsource
protected строка
Используется для сброса времени cookie, если $expire передан в CookieComponent::write()
null
$_typesource
protected строка
Тип шифрования для использования.
В настоящее время доступны два метода: cipher и rijndael. По умолчанию используется Security::cipher(). Cipher ужасно небезопасен и используется по умолчанию только из-за обратной совместимости. В новых приложениях вы всегда должны изменить это на 'aes' или 'rijndael'.
'cipher'
$_valuessource
protected строка
Значения, хранящиеся в cookie.
Доступ к ним в контроллере с помощью $this->Cookie->read('Имя.ключ');
См. также
CookieComponent::read();array()
$domainsource
public строка
Доменная директория.
Домен, в котором доступна cookie.
Переопределяется в контроллере перед фильтром: $this->Cookie->domain = '.example.com';
Чтобы сделать cookie доступной для всех поддоменов example.com. Установите $this->Cookie->domain = '.example.com'; в контроллере перед фильтром.
''
$httpOnlysource
public boolean
Cookie только для HTTP
Установите в значение true, чтобы сделать cookie только для HTTP. Cookie, которые только для HTTP, недоступны в JavaScript.
false
$keysource
public строка
Ключ шифрования.
Переопределяется в контроллере перед фильтром: $this->Cookie->key = 'SomeRandomString';
null
$namesource
public строка
Имя cookie.
Переопределяется в контроллере перед фильтром: $this->Cookie->name = 'ИмяCookie';
'CakeCookie'
$pathsource
public строка
Путь cookie.
Переопределяется в контроллере перед фильтром: $this->Cookie->path = '/';
Путь на сервере, в котором cookie будет доступна. Если public $cookiePath установлен в '/foo/', cookie будет доступна только в каталоге /foo/ и всех подкаталогах, таких как /foo/bar/ домена. Значение по умолчанию — весь домен.
'/'
$securesource
public boolean
Файл cookie, доступный только по HTTPS.
Переопределяется с помощью метода beforeFilter() контроллера; $this->Cookie->secure = true;
Указывает, что cookie должен передаваться только по защищенному соединению HTTPS. При установке в значение true, cookie будет устанавливаться только при наличии защищенного соединения.
false
$timesource
public mixed
Время, в течение которого cookie будет оставаться действительным.
Может быть либо целым значением временной метки Unix, либо строкой даты.
Переопределяется с помощью метода beforeFilter() контроллера; $this->Cookie->time = '5 Дней';
null
© 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/2.10/class-CookieComponent.html