Класс CookieComponent
Компонент Cookie.
Предоставляет расширенные возможности работы с куки для использования в слое контроллера. В дополнение к базовым функциям, предлагаемым Cake\Http\Response, этот класс позволяет:
- Создавать и читать зашифрованные куки.
- Хранить данные, не являющиеся скалярами.
- Использовать синтаксис, совместимый с хешем, для чтения/записи/удаления значений.
- Cake\Controller\Component implements Cake\Event\EventListenerInterface uses Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
-
Cake\Controller\Component\CookieComponent uses Cake\Utility\CookieCryptTrait
Ссылка: https://book.cakephp.org/3.0/ru/controllers/components/cookie.html
Устаревшее: 3.5.0 Используйте Cake\Http\Middleware\EncryptedCookieMiddleware и Cake\Http\Cookie\Cookie вместо этого.
Расположение: Controller/Component/CookieComponent.php
Краткое описание свойств
-
$_defaultConfigprotectedКонфигурация по умолчаниюarray -
$_keyConfigprotectedКонфигурация, специфичная для данного ключа верхнего уровня.array -
$_loadedprotectedКарта загруженных ключей.array -
$_responseprotectedCake\Http\Response|nullСсылка на объект Cake\Http\Response контроллера. В настоящее время не используется.
-
$_valuesprotectedЗначения, хранящиеся в куки.array
Унаследованные свойства
Краткое описание методов
- _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 - Ключ для проверки
Возвращает
логическое значение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 )
Удалить значение куки
Этот метод необходимо использовать до вывода любого содержимого в браузер. В противном случае могут возникнуть ошибки "заголовок уже отправлен".
Удаление ключа верхнего уровня приведет к удалению всех вложенных ключей. Например, удаление ключа 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 )
Считывает значение ключа из куки-файлов запроса.
Этот метод также позволит вам прочитать куки, которые были записаны в этом запросе, но ещё не отправлены клиенту.
Параметры
- string|null
$keyнеобязательно null - Ключ искомого значения.
Возвращает
stringили 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.
getController()source public
getController( )
Получить контроллер, к которому привязан этот компонент.
Возвращает
Cake\Controller\ControllerСвязанный контроллер.
Методы, используемые из 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|arrayДекодированные значения.
_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|arrayРасшифрованные значения
_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, или обычная строка.
Возвращает
string|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->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки или полный массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
Возвращает
$this
getConfig()source public
getConfig( string|null $key null , mixed $default null )
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение определенного значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
- string|null
$keyнеобязательно null - Ключ для получения или null для всей конфигурации.
- mixed
$defaultнеобязательно null - Значение, возвращаемое, если ключ не существует.
Возвращает
mixedСчитываемое значение конфигурации.
setConfig()source public
setConfig( string|array $key , mixed|null $value null , boolean $merge true )
Устанавливает конфигурацию.
Использование
Установка определенного значения:
$this->setConfig('key', $value); Установка вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки или полный массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Необходимо ли рекурсивно объединять или перезаписывать существующую конфигурацию, по умолчанию true.
Возвращает
$this
Вызывает
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
Методы, используемые из 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\Http\Response|null
Ссылка на объект Cake\Http\Response контроллера. В настоящее время не используется.
Устарело
3.4.0 Будет удалено в 4.0.0$_valuessource
protected array
Значения, хранящиеся в файле cookie.
Доступ к ним в контроллере через $this->Cookie->read('Name.key');
[]
© 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.4/class-Cake.Controller.Component.CookieComponent.html