Класс CookieComponent
Компонент Cookie.
Предоставляет расширенные возможности работы с куки для использования в слое контроллеров. В дополнение к базовым функциям, предлагаемым Cake\Network\Response, этот класс позволяет:
- Создавать и читать зашифрованные куки.
- Хранить данные, не являющиеся скалярными.
- Использовать синтаксис, совместимый с хешем, для чтения/записи/удаления значений.
- Cake\Controller\Component implements Cake\Event\EventListenerInterface uses Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
-
Cake\Controller\Component\CookieComponent uses 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Значения, хранящиеся в куки.string
Унаследованные свойства
Краткое описание методов
- _delete() protectedУстанавливает время истечения куки для удаления значения куки.
- _getCookieEncryptionKey() protectedВозвращает ключ шифрования, который будет использоваться.
- _load() protectedЗагружает данные куки из объектов запроса и ответа.
- _write() protectedУстановить куки
- check() publicВозвращает true, если заданный ключ установлен в куки.
- configKey() publicУстановить конфигурацию для определенного ключа верхнего уровня.
- delete() publicУдалить значение куки
- implementedEvents() publicПоддерживаемые события этого компонента.
- initialize() publicИнициализировать данные конфигурации и свойства.
- read() publicПрочитать значение ключа пути из куки запроса.
- write() publicЗаписать значение в куки ответа.
Подробное описание методов
_delete()source protected
_delete( string $name )
Устанавливает время истечения куки для удаления значения куки.
Это выполняется только один раз после удаления всех значений в ключе куки с помощью delete.
Параметры
- строка
$name - Имя куки
_getCookieEncryptionKey()source protected
_getCookieEncryptionKey( )
Возвращает ключ шифрования, который будет использоваться.
Возвращает
строка_load()source protected
_load( string|array $key )
Загружает данные куки из объектов запроса и ответа.
На основе данных конфигурации куки будут расшифрованы. Когда куки содержат массивы данных, эти данные будут расширены.
Параметры
- строка|массив
$key - Ключ для загрузки.
_write()source protected
_write( string $name , string $value )
Установить куки
Параметры
- строка
$name - Имя куки
- строка
$value - Значение куки
check()source public
check( string|null $key null )
Возвращает true, если заданный ключ установлен в куки.
Параметры
- строка|null
$keyнеобязательно null - Ключ для проверки
Возвращает
booleanTrue, если ключ существует
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 )
Удалить значение куки
Этот метод должен использоваться до отправки любого вывода в браузер. Отсутствие этого может привести к ошибкам "заголовок уже отправлен".
Удаление ключа верхнего уровня удалит все ключи, вложенные в этот ключ. Например, удаление ключа 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 )
Прочитать значение ключа пути из куки запроса.
Этот метод также позволит вам читать куки, которые были записаны в этом запросе, но еще не отправлены клиенту.
Параметры
- строка|null
$keyнеобязательно null - Ключ значения для получения.
Возвращает
строкаили null, значение для указанного ключа
write()source public
write( string|array $key , mixed $value null )
Записать значение в куки ответа.
Этот метод необходимо использовать до отправки любого вывода в браузер. В противном случае произойдёт ошибка «заголовок уже отправлен».
Параметры
- строка|массив
$key - Ключ для значения
- смешанный
$valueнеобязательно null - Значение
Методы, унаследованные от Cake\Controller\Component
__construct()source public
__construct( Cake\Controller\ComponentRegistry $registry , array $config [] )
Конструктор
Параметры
-
Cake\Controller\ComponentRegistry$registry - Объект ComponentRegistry, который этот компонент может использовать для ленивой загрузки своих компонентов
- массив
$configнеобязательно [] - Массив параметров конфигурации.
__debugInfo()source public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
массив__get()source public
__get( string $name )
Магический метод для ленивой загрузки $components.
Параметры
- строка
$name - Имя компонента для получения.
Возвращает
смешанныйОбъект Component или null.
Методы, используемые из Cake\Utility\CookieCryptTrait
_checkCipher()source protected
_checkCipher( string $encrypt )
Вспомогательный метод для проверки имен шифров шифрования.
Параметры
- строка
$encrypt - Имя шифра.
Вызывает исключение
RuntimeExceptionПри предоставлении недопустимого шифра.
_decode()source protected
_decode( string $value , string|false $encrypt , string|null $key )
Декодирует и расшифровывает одно значение.
Параметры
- строка
$value - Значение для декодирования и расшифровки.
- строка|ложь
$encrypt - Используемый шифр шифрования.
- строка|null
$key - Используется в качестве секретной соли, если указано.
Возвращает
строкаДекодированное значение.
_decrypt()source protected
_decrypt( array $values , string|boolean $mode , string|null $key null )
Расшифровывает $value, используя метод public $type класса Security.
Параметры
- массив
$values - Значения для расшифровки
- строка|булево
$mode - Режим шифрования
- строка|null
$keyнеобязательно null - Используется в качестве секретной соли, если указано.
Возвращает
строкарасшифрованная строка
_encrypt()source protected
_encrypt( string $value , string|boolean $encrypt , string|null $key null )
Шифрует $value, используя метод public $type класса Security.
Параметры
- строка
$value - Значение для шифрования
- строка|булево
$encrypt Используемый режим шифрования. False отключает шифрование.
- строка|null
$keyнеобязательно null - Используется в качестве секретной соли, если указано.
Возвращает
строкаКодированные значения
_explode()source protected
_explode( string $string )
Метод explode для возврата массива из строки, установленной в CookieComponent::_implode(). Поддерживает обратную совместимость с чтением 1.x CookieComponent::_implode().
Параметры
- строка
$string - Строка, содержащая закодированные в JSON данные или обычная строка.
Возвращает
массивКарта ключей и значений
_implode()source protected
_implode( array $array )
Метод implode для сохранения ключей в многомерных массивах
Параметры
- массив
$array - Карта ключей и значений
Возвращает
строкаСтрока, закодированная в JSON.
Методы, используемые из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удалить один ключ конфигурации
Параметры
- строка
$key - Ключ для удаления.
Вызывает исключение
Cake\Core\Exception\Exceptionпри попытке перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Прочитать переменную конфигурации
Параметры
- строка|null
$key - Ключ для чтения.
Возвращает
смешанный_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Записать переменную конфигурации
Параметры
- строка|массив
$key - Ключ для записи.
- смешанный
$value - Значение для записи.
- булево|строка
$mergeнеобязательно false True для рекурсивного слияния, «поверхностный» для простого слияния, 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']);
Параметры
- строка|массив|null
$keyнеобязательно null - Ключ для получения/установки или полный массив конфигураций.
- смешанный|null
$valueнеобязательно null - Значение для установки.
- булево
$mergeнеобязательно true - Необходимо ли рекурсивно сливать или перезаписывать существующую конфигурацию, по умолчанию true.
Возвращает
смешанныйЧитаемое значение конфигурации или сам объект при операциях записи.
Вызывает исключение
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']);
Параметры
- строка|массив
$key - Ключ для установки или полный массив конфигураций.
- смешанный|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('Name.key');
[]
© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Controller.Component.CookieComponent.html