Класс 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
Унаследованные свойства
Резюме методов
- Устанавливает время истечения куки для удаления значения куки.
- Возвращает ключ шифрования, который будет использоваться.
- Загрузить данные куки из объектов запроса и ответа.
- Установить куки
- Возвращает true, если заданный ключ установлен в куки.
- Установить конфигурацию для определённого ключа верхнего уровня.
- Удалить значение куки
- Поддерживаемые события этого компонента.
- Инициализировать данные конфигурации и свойства.
- Прочитать значение пути ключа из куки запроса.
- Записать значение в куки ответа.
Подробное описание метода
_delete()source protected deprecated
_delete( string $name )
Устанавливает время истечения куки для удаления значения куки.
Это выполняется только один раз после удаления всех значений в ключе куки с помощью delete.
Параметры
- string
$name - Имя куки
_getCookieEncryptionKey()source protected deprecated
_getCookieEncryptionKey( )
Возвращает ключ шифрования, который будет использоваться.
Возвращает
строка_load()source protected deprecated
_load( string|array $key )
Загрузить данные куки из объектов запроса и ответа.
На основе данных конфигурации куки будут расшифрованы. Когда куки содержат массив данных, эти данные будут расширены.
Параметры
- строка|массив
$key - Ключ для загрузки.
_write()source protected deprecated
_write( string $name , string $value )
Установить куки
Параметры
- строка
$name - Имя куки
- строка
$value - Значение куки
check()source public deprecated
check( string|null $key = null )
Возвращает true, если заданный ключ установлен в куки.
Параметры
- строка|null
$keyнеобязательно null - Ключ для проверки
Возвращает
логическое значениеTrue, если ключ существует
configKey()source public deprecated
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 deprecated
delete( string $key )
Удалить значение куки
Вы должны использовать этот метод до того, как любой вывод будет отправлен в браузер. В противном случае возникнут ошибки «заголовок уже отправлен».
Удаление ключа верхнего уровня также удалит все вложенные ключи. Например, удаление ключа User также удалит User.email.
Параметры
- строка
$key - Ключ значения для удаления
implementedEvents()source public deprecated
implementedEvents( )
Поддерживаемые события этого компонента.
Возвращает
массивПереопределяет
Cake\Controller\Component::implementedEvents() initialize()source public deprecated
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() Сохраняет обратную совместимость чтения с CookieComponent::_implode() версии 1.x.
Параметры
- string
$string - Строка, содержащая JSON-кодированные данные или обычная строка.
Возвращает
string|arrayКарта ключей и значений
_implode()source protected
_implode( array $array )
Метод implode, который сохраняет ключи, являющиеся многомерными массивами
Параметры
- array
$array - Карта ключей и значений
Возвращает
stringJSON-кодированная строка.
Методы, используемые из 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–present 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.7/class-Cake.Controller.Component.CookieComponent.html