Класс CookieComponent
Компонент Cookie.
Обеспечивает расширенные возможности обработки файлов cookie для использования в контроллере. В дополнение к базовым функциям, предлагаемым Cake\Http\Response, этот класс позволяет:
- Создавать и читать зашифрованные файлы cookie.
- Хранить данные, не являющиеся скалярами.
- Использовать синтаксис, совместимый с хешем, для чтения/записи/удаления значений.
- Cake\Controller\Component реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
-
Cake\Controller\Component\CookieComponent использует 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Значения, хранящиеся в файле cookie.array
Унаследованные свойства
Краткое описание методов
- _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 - Ключ для проверки
Возвращает
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 )
Удалить значение 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 )
Считывает значение ключа из куки-файлов запроса.
Этот метод также позволит вам прочитать куки, которые были записаны в этом запросе, но еще не отправлены клиенту.
Параметры
- 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 - Компонента ComponentRegistry, которую этот компонент может использовать для ленивой загрузки своих компонентов
- 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–2018 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.5/class-Cake.Controller.Component.CookieComponent.html