Класс CookieComponent
Компонент Cookie.
Предоставляет расширенные возможности обработки файлов cookie для использования в слое контроллера. В дополнение к основным функциям, предлагаемым Cake\Network\Response, этот класс позволяет:
- Создавать и читать зашифрованные файлы cookie.
- Хранить данные, не являющиеся скалярными.
- Использовать синтаксис, совместимый с хешем, для чтения/записи/удаления значений.
- Cake\Controller\Component реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
-
Cake\Controller\Component\CookieComponent использует Cake\Utility\CookieCryptTrait
Ссылка: http://book.cakephp.org/3.0/ru/controllers/components/cookie.html
Расположение: Controller/Component/CookieComponent.php
Краткое описание свойств
-
$_defaultConfigprotectedКонфигурация по умолчаниюarray -
$_keyConfigprotectedКонфигурация, специфичная для данного ключа верхнего уровня.array -
$_loadedprotectedКарта загруженных ключей.array - Ссылка на объект Cake\Network\Response контроллера
$_responseprotected -
$_valuesprotectedЗначения, хранящиеся в файлах cookie.string
Наследуемые свойства
Краткое описание методов
- _delete() protectedУстанавливает время истечения срока действия файла cookie для удаления значения файла cookie.
- _getCookieEncryptionKey() protectedВозвращает ключ шифрования, который будет использоваться.
- _load() protectedЗагрузка данных файлов cookie из объектов запроса и ответа.
- _write() protectedУстановить файл cookie
- check() publicВозвращает true, если заданный ключ установлен в файле cookie.
- configKey() publicУстановить конфигурацию для определённого ключа верхнего уровня.
- delete() publicУдалить значение файла cookie
- implementedEvents() publicПоддерживаемые этим компонентом события.
- initialize() publicИнициализировать данные конфигурации и свойства.
- read() publicПрочитать значение ключа пути из файлов cookie запроса.
- write() publicЗаписать значение в файлы cookie ответа.
Подробное описание методов
_delete()source protected
_delete( string $name )
Устанавливает время истечения срока действия файла cookie для удаления значения файла cookie.
Это делается только один раз, после того, как все значения в ключе файла cookie были удалены с помощью delete.
Параметры
- строка
$name - Имя файла cookie
_getCookieEncryptionKey()source protected
_getCookieEncryptionKey( )
Возвращает ключ шифрования, который будет использоваться.
Возвращает
строка_load()source protected
_load( string|array $key )
Загрузка данных файлов cookie из объектов запроса и ответа.
Основываясь на данных конфигурации, файлы cookie будут расшифрованы. Когда файлы cookie содержат данные массива, эти данные будут расширены.
Параметры
- строка|массив
$key - Ключ для загрузки.
_write()source protected
_write( string $name , string $value )
Установить файл cookie
Параметры
- строка
$name - Имя файла cookie
- строка
$value - Значение файла cookie
check()source public
check( string|null $key null )
Возвращает true, если заданный ключ установлен в файле cookie.
Параметры
- строка|null
$keyопционально null - Ключ для проверки
Возвращает
логическое значениеTrue, если ключ существует
configKey()source public
configKey( string $keyname , null|string|array $option null , string|null $value null )
Установить конфигурацию для определённого ключа верхнего уровня.
Примеры:
Установить один параметр конфигурации для ключа:
$this->Cookie->configKey('User', 'expires', '+3 months'); Установить несколько параметров:
$this->Cookie->configKey('User', [
'expires', '+3 months',
'httpOnly' => true,
]); Параметры
- строка
$keyname - Имя ключа верхнего уровня для настройки.
- null|строка|массив
$optionопционально null Имя параметра для установки, или массив параметров для установки, или null для чтения параметров конфигурации для заданного ключа.
- строка|null
$valueопционально null - Значение для установки, или пустое, когда $option — массив.
Возвращает
массив|nulldelete()source public
delete( string $key )
Удалить значение файла cookie
Этот метод необходимо использовать до отправки любого вывода в браузер. В противном случае возникнут ошибки "заголовок уже отправлен".
Удаление ключа верхнего уровня удалит все вложенные ключи. Например, удаление ключа User также удалит User.email.
Параметры
- строка
$key - Ключ удаляемого значения
implementedEvents()source public
implementedEvents( )
Поддерживаемые этим компонентом события.
Возвращает
массивПереопределяет
Cake\Controller\Component::implementedEvents() initialize()source public
initialize( array $config )
Инициализировать данные конфигурации и свойства.
Параметры
- массив
$config - Данные конфигурации.
Переопределяет
Cake\Controller\Component::initialize() read()source public
read( string|null $key null )
Прочитать значение ключа пути из файлов cookie запроса.
Этот метод также позволит вам прочитать файлы cookie, которые были записаны в этом запросе, но ещё не отправлены клиенту.
Параметры
- строка|null
$keyопционально null - Ключ искомого значения.
Возвращает
строкаили null, значение для заданного ключа
write()source public
write( string|array $key , mixed $value null )
Записать значение в куки-файлы ответа.
Этот метод необходимо использовать до отправки любого вывода в браузер. Иначе возникнут ошибки «заголовок уже отправлен».
Параметры
- string|array
$key - Ключ для значения
- mixed
$valueнеобязательно null - Значение
Методы, унаследованные от Cake\Controller\Component
__construct()source public
__construct( Cake\Controller\ComponentRegistry $registry , array $config [] )
Конструктор
Параметры
-
Cake\Controller\ComponentRegistry$registry - Регистр компонентов, который этот компонент может использовать для ленивой загрузки своих компонентов
- array
$configнеобязательно [] - Массив настроек конфигурации.
__debugInfo()source public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
array__get()source public
__get( string $name )
Магический метод для ленивой загрузки $components.
Параметры
- string
$name - Имя компонента для получения.
Возвращает
mixedОбъект компонента или null.
Методы, используемые из Cake\Utility\CookieCryptTrait
_checkCipher()source protected
_checkCipher( string $encrypt )
Вспомогательный метод для проверки имен шифров шифрования.
Параметры
- string
$encrypt - Имя шифра.
Выбрасывает
RuntimeExceptionПри предоставлении недопустимого шифра.
_decode()source protected
_decode( string $value , string|false $encrypt , string|null $key )
Декодирует и расшифровывает одно значение.
Параметры
- string
$value - Значение для декодирования и расшифровки.
- string|false
$encrypt - Используемый шифр шифрования.
- string|null
$key - Используется в качестве секретного ключа, если указано.
Возвращает
stringДекодированное значение.
_decrypt()source protected
_decrypt( array $values , string|boolean $mode , string|null $key null )
Расшифровывает $value с использованием метода public $type в классе Security
Параметры
- array
$values - Значения для расшифровки
- string|boolean
$mode - Режим шифрования
- string|null
$keyнеобязательно null - Используется в качестве секретного ключа, если указано.
Возвращает
stringРасшифрованная строка
_encrypt()source protected
_encrypt( string $value , string|boolean $encrypt , string|null $key null )
Шифрует $value, используя метод public $type в классе Security
Параметры
- string
$value - Значение для шифрования
- string|boolean
$encrypt Используемый режим шифрования. False отключает шифрование.
- string|null
$keyнеобязательно null - Используется в качестве секретного ключа, если указано.
Возвращает
stringЗакодированные значения
_explode()source protected
_explode( string $string )
Метод explode, возвращающий массив из строки, заданной в CookieComponent::_implode(). Сохраняет обратную совместимость с чтением из 1.x CookieComponent::_implode().
Параметры
- string
$string - Строка, содержащая данные в формате JSON, закодированные или просто строка.
Возвращает
arrayКарта ключей и значений
_implode()source protected
_implode( array $array )
Метод implode для сохранения ключей в многомерных массивах
Параметры
- array
$array - Карта ключей и значений
Возвращает
stringСтрока в формате json.
Методы, используемые из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удалить один ключ конфигурации
Параметры
- string
$key - Ключ для удаления.
Выбрасывает
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Считывание переменной конфигурации
Параметры
- string|null
$key - Ключ для чтения.
Возвращает
mixed_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Запись переменной конфигурации
Параметры
- string|array
$key - Ключ для записи.
- mixed
$value - Значение для записи.
- boolean|string
$mergeнеобязательно false True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Выбрасывает
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
config()source public
config( string|array|null $key null , mixed|null $value null , boolean $merge true )
Использование
Чтение всей конфигурации:
$this->config();
Чтение определенного значения:
$this->config('key'); Чтение вложенного значения:
$this->config('some.nested.key'); Установка определенного значения:
$this->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Параметры
- string|array|null
$keyнеобязательно null - Ключ для получения/установки или весь массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.
Возвращает
mixedЗначение конфигурации, которое читается, или сам объект при операциях записи.
Выбрасывает
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
configShallow()source public
configShallow( string|array $key , mixed|null $value null )
Объединить предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), которая выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.
Установка определенного значения:
$this->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки или весь массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
Возвращает
$this Сам объект.
Методы, используемые из Cake\Log\LogTrait
log()source public
log( mixed $msg , integer|string $level LogLevel::ERROR , string|array $context [] )
Удобный метод для записи сообщения в журнал. Подробнее о записи в журналы см. Log::write().
Параметры
- mixed
$msg - Сообщение журнала.
- integer|string
$levelнеобязательно LogLevel::ERROR - Уровень ошибки.
- string|array
$contextнеобязательно [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
booleanУспешность записи в журнал.
Подробное описание свойств
$_defaultConfigsource
protected array
Конфигурация по умолчанию
-
expires- Срок действия cookie. По умолчанию 1 месяц. -
path- Путь на сервере, где cookie будет доступен. Если путь установлен в '/foo/', cookie будет доступен только в каталоге /foo/ и всех подкаталогах, таких как /foo/bar/, домена. Значение по умолчанию — базовый путь приложения. Например, если ваше приложение запущено в подкаталоге "cakeapp" корневого каталога, путь будет "/cakeapp/", иначе — "/". -
domain- Домен, где доступен cookie. Чтобы сделать cookie доступным для всех поддоменов example.com, установите домен в '.example.com'. -
secure- Указывает, что cookie должен передаваться только по защищенному соединению HTTPS. Если установлено в true, cookie будет установлен только если существует защищенное соединение. -
key- Ключ шифрования, используемый при включенном шифровании cookie. По умолчанию Security.salt. -
httpOnly- Установите в true, чтобы сделать cookie HTTP-только. Cookie, которые являются HTTP-только, недоступны в JavaScript. Значение по умолчанию false. -
encryption- Тип шифрования для использования. По умолчанию 'aes'.
[
'path' => null,
'domain' => '',
'secure' => false,
'key' => null,
'httpOnly' => false,
'encryption' => 'aes',
'expires' => '+1 month',
] $_keyConfigsource
protected array
Конфигурация, специфичная для заданного ключа верхнего уровня.
Значения в этом массиве объединяются с общей конфигурацией для генерации конфигурации для заданного имени cookie верхнего уровня.
[]
$_loadedsource
protected array
Карта загруженных ключей.
Поскольку CookieComponent лениво считывает данные cookie, нам необходимо отслеживать, какие cookie были прочитаны, чтобы учесть шаблоны чтения, удаления, чтения.
[]
$_responsesource
protected Cake\Network\Response
Ссылка на объект Cake\Network\Response контроллера
null
$_valuessource
protected string
Значения, хранящиеся в cookie.
Доступ к ним в контроллере с помощью $this->Cookie->read('Имя.ключ');
[]
© 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/3.3/class-Cake.Controller.Component.CookieComponent.html