Класс Cookie
Объект Cookie для создания cookie и преобразования его в значение заголовка
HTTP-cookie (также называемый веб-cookie, интернет-cookie, cookie браузера или просто cookie) — это небольшой фрагмент данных, отправляемый веб-сайтом и хранящийся на компьютере пользователя веб-браузером пользователя во время просмотра.
Cookies были разработаны как надежный механизм для веб-сайтов, позволяющий запоминать информацию о состоянии (например, товары, добавленные в корзину в интернет-магазине), или для записи активности пользователя (включая нажатие определенных кнопок, вход в систему или запись посещенных страниц в прошлом). Их также можно использовать для запоминания произвольных фрагментов информации, которые пользователь ранее вводил в поля форм, например, имена и предпочтения.
Объекты Cookie являются неизменяемыми, и при изменении объектов Cookie необходимо переназначать переменные:
$cookie = $cookie->withValue('0'); See: \Cake\Http\Cookie\CookieCollection for working with collections of cookies.
See: \Cake\Http\Response::getCookieCollection() for working with response cookies.
Link: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03
Link: https://en.wikipedia.org/wiki/HTTP_cookie
Константы
-
stringEXPIRES_FORMAT'D, d-M-Y H:i:s T'
Формат атрибута Expires.
-
stringSAMESITE_LAX'Lax'
Значение атрибута SameSite: Lax
-
stringSAMESITE_NONE'None'
Значение атрибута SameSite: None
-
stringSAMESITE_STRICT'Strict'
Значение атрибута SameSite: Strict
-
string[]SAMESITE_VALUES[self::SAMESITE_LAX, self::SAMESITE_STRICT, self::SAMESITE_NONE]
Допустимые значения для атрибута "SameSite".
Краткое описание свойств
- $defaults protected static
arrayАтрибуты по умолчанию для cookie.
- $domain protected
stringДомен
- $expiresAt protected
DateTimeDateTimeImmutable|nullВремя истечения срока действия
- $httpOnly protected
boolТолько HTTP
- $isExpanded protected
boolБыло ли значение JSON развернуто в массив.
- $name protected
stringИмя cookie
- $path protected
stringПуть
- $sameSite protected
string|nullSameSite
- $secure protected
boolБезопасный
- $value protected
string|arrayНеобработанное значение Cookie.
Краткое описание методов
-
__construct() public
Конструктор
-
_expand() protected
Метод взрыва для возврата массива из строки, установленной в CookieComponent::_flatten() Сохраняет обратную совместимость с чтением с CookieComponent::_flatten() версии 1.x.
-
_flatten() protected
Метод объединения для сохранения ключей как многомерных массивов
-
_setValue() protected
Установщик для атрибута значения.
-
check() public
Проверяет, существует ли значение в данных cookie.
-
create() public static
Фабричный метод для создания экземпляров Cookie.
-
createFromHeaderString() public static
Создать экземпляр Cookie из строки заголовка "set-cookie".
-
dateTimeInstance() protected static
Преобразует ненулевое значение срока действия в экземпляр DateTimeInterface.
-
getDomain() public
Получить атрибут домена.
-
getExpiresTimestamp() public
Получить метку времени из времени истечения срока действия
-
getExpiry() public
Получить текущее время истечения срока действия
-
getFormattedExpires() public
Создает часть значения срока действия строки заголовка
-
getId() public
Получить идентификатор cookie
-
getName() public
Получает имя cookie
-
getOptions() public
Получить параметры cookie
-
getPath() public
Получить атрибут пути.
-
getSameSite() public
Получить атрибут SameSite.
-
getScalarValue() public
Получает значение cookie как скаляр.
-
getStringValue() public deprecated
Получает значение cookie как строку.
-
getValue() public
Получает значение cookie
-
isExpanded() public
Проверяет, было ли расширено значение cookie
-
isExpired() public
Проверить, истек ли срок действия cookie по сравнению с $time
-
isHttpOnly() public
Проверить, является ли cookie только HTTP
-
isSecure() public
Проверить, является ли cookie защищенным
-
read() public
Чтение данных из cookie
-
setDefaults() public static
Установить параметры по умолчанию для файлов cookie.
-
toArray() public
Получить данные cookie как массив.
-
toHeaderValue() public
Возвращает значение заголовка как строку
-
validateName() protected
Проверяет имя cookie
-
validateSameSiteValue() protected static
Проверить, является ли переданное значение для SameSite допустимым.
-
withAddedValue() public
Создать новый cookie с обновленными данными.
-
withDomain() public
Создать cookie с обновленным доменом
-
withExpired() public
Создать новый cookie, который истечет/удалится из браузера.
-
withExpiry() public
Создать cookie с обновленной датой истечения срока действия
-
withHttpOnly() public
Создать cookie с обновленным параметром HTTP Only
-
withName() public
Устанавливает имя cookie
-
withNeverExpire() public
Создать новый cookie, срок действия которого практически никогда не истечет.
-
withPath() public
Создать новый cookie с обновленным путем
-
withSameSite() public
Создать cookie с обновленным параметром SameSite.
-
withSecure() public
Создать cookie с обновленным параметром Secure
-
withValue() public
Создать cookie с обновленным значением.
-
withoutAddedValue() public
Создать новый cookie без определенного пути
Подробное описание методов
__construct() public
__construct(string $name, string|array $value = '', DateTimeDateTimeImmutable|null $expiresAt = null, string|null $path = null, string|null $domain = null, bool|null $secure = null, bool|null $httpOnly = null, string|null $sameSite = null)
Конструктор
Аргументы конструктора аналогичны методу native PHP setcookie(). Единственное отличие — третий аргумент, который принимает null или объект DateTime или DateTimeImmutable вместо целого числа.
Параметры
-
string$name Имя cookie
-
string|array$value optional Значение cookie
-
DateTimeDateTimeImmutable|null$expiresAt optional Время и дата истечения срока действия
-
string|null$path optional Путь
-
string|null$domain optional Домен
-
bool|null$secure optional Безопасный
-
bool|null$httpOnly optional HTTP Only
-
string|null$sameSite optional SameSite
Ссылки
_expand() protected
_expand(string $string): string|array
Метод explode для возврата массива из строки, установленной в CookieComponent::_flatten(). Поддерживает обратную совместимость с чтением из CookieComponent::_flatten() версии 1.x.
Параметры
-
string$string Строка, содержащая данные в формате JSON, или простая строка.
Возвращаемое значение
string|array_flatten() protected
_flatten(array $array): string
Метод implode для сохранения ключей в многомерных массивах
Параметры
-
array$array Сопоставление ключей и значений
Возвращаемое значение
string_setValue() protected
_setValue(string|array $value): void
Установщик для атрибута value.
Параметры
-
string|array$value Значение для хранения.
Возвращаемое значение
voidcheck() public
check(string $path): bool
Проверяет, существует ли значение в данных cookie.
Этот метод развернет сериализованные сложные данные при первом использовании.
Параметры
-
string$path Путь для проверки
Возвращаемое значение
boolcreate() public static
create(string $name, string|array $value, array $options = []): static
Метод фабрики для создания экземпляров Cookie.
Параметры
-
string$name Имя cookie
-
string|array$value Значение cookie
-
array$options optional Параметры cookie.
Возвращаемое значение
staticСм. также
createFromHeaderString() public static
createFromHeaderString(string $cookie, array $defaults = []): static
Создает экземпляр Cookie из строки заголовка "set-cookie".
Параметры
-
string$cookie Строка заголовка Cookie.
-
array$defaults optional Атрибуты по умолчанию.
Возвращаемое значение
staticСм. также
dateTimeInstance() protected static
dateTimeInstance(mixed $expires): DateTimeDatetimeImmutable|null
Преобразует ненулевое значение срока действия в экземпляр DateTimeInterface.
Параметры
-
mixed$expires Значение срока действия.
Возвращаемое значение
DateTimeDatetimeImmutable|nullgetDomain() public
getDomain(): string
Получить атрибут domain.
Возвращаемое значение
stringgetExpiresTimestamp() public
getExpiresTimestamp(): int|null
Получить временную метку из времени истечения срока действия
Возвращаемое значение
int|nullgetExpiry() public
getExpiry(): DateTimeDateTimeImmutable|null
Получить текущее время истечения срока действия
Возвращаемое значение
DateTimeDateTimeImmutable|nullgetFormattedExpires() public
getFormattedExpires(): string
Создает часть значения истечения срока действия строки заголовка
Возвращаемое значение
stringgetId() public
getId(): string
Получить id для cookie
Cookies уникальны по имени, домену, кортежу путей.
Возвращаемое значение
stringgetName() public
getName(): string
Получает имя cookie
Возвращаемое значение
stringgetOptions() public
getOptions(): array
Получить параметры cookie
Возвращаемое значение
arraygetPath() public
getPath(): string
Получить атрибут path.
Возвращаемое значение
stringgetSameSite() public
getSameSite(): string|null
Получить атрибут SameSite.
Возвращаемое значение
string|nullgetScalarValue() public
getScalarValue(): mixed
Получает значение cookie как скаляр.
Это свернет любые сложные данные в cookie с помощью json_encode()
Возвращаемое значение
mixedgetStringValue() public
getStringValue(): mixed
Получает значение cookie как строку.
Это свернет любые сложные данные в cookie с помощью json_encode()
Возвращаемое значение
mixedgetValue() public
getValue(): string|array
Получает значение cookie
Возвращаемое значение
string|arrayisExpanded() public
isExpanded(): bool
Проверяет, было ли развернуто значение cookie
Возвращаемое значение
boolisExpired() public
isExpired(DateTimeDateTimeImmutable $time = null): bool
Проверить, истек ли срок действия cookie по сравнению с $time
Cookies без даты истечения срока действия всегда возвращают false.
Параметры
-
DateTimeDateTimeImmutable$time optional
Возвращаемое значение
boolisHttpOnly() public
isHttpOnly(): bool
Проверить, является ли cookie cookie HTTP only
Возвращаемое значение
boolisSecure() public
isSecure(): bool
Проверить, является ли cookie безопасным
Возвращаемое значение
boolread() public
read(string $path = null): mixed
Считать данные из cookie
Этот метод развернет сериализованные сложные данные при первом использовании.
Параметры
-
string$path optional Путь для чтения данных
Возвращаемое значение
mixedsetDefaults() public static
setDefaults(array $options): void
Установка параметров по умолчанию для файлов cookie.
Допустимые ключи параметров:
-
expires: Может быть меткой времени UNIX или строкой, совместимой сstrtotime(), или экземпляромDateTimeInterfaceилиnull. -
path: Строка пути. По умолчанию'/'. -
domain: Строка имени домена. По умолчанию''. -
httponly: Логическое значение. По умолчаниюfalse. -
secure: Логическое значение. По умолчаниюfalse. -
samesite: Может быть одним изCookieInterface::SAMESITE_LAX,CookieInterface::SAMESITE_STRICT,CookieInterface::SAMESITE_NONEилиnull. По умолчаниюnull.
Параметры
-
array$options Параметры по умолчанию.
Возвращает
voidtoArray() public
toArray(): array
Получить данные cookie в виде массива.
Возвращает
arraytoHeaderValue() public
toHeaderValue(): string
Возвращает значение заголовка в виде строки
Возвращает
stringvalidateName() protected
validateName(string $name): void
Проверка имени cookie
Параметры
-
string$name Имя cookie
Возвращает
voidИсключения
InvalidArgumentExceptionСсылки
validateSameSiteValue() protected static
validateSameSiteValue(string $sameSite): void
Проверка корректности переданного значения SameSite.
Параметры
-
string$sameSite Значение SameSite
Возвращает
voidИсключения
InvalidArgumentExceptionwithAddedValue() public
withAddedValue(string $path, mixed $value): static
Создать новый файл cookie с обновленными данными.
Параметры
-
string$path Путь для записи
-
mixed$value Значение для записи
Возвращает
staticwithDomain() public
withDomain(string $domain): static
Создать файл cookie с обновленным доменом
Параметры
-
string$domain
Возвращает
staticwithExpired() public
withExpired(): static
Создать новый файл cookie, который истечет/удалится из браузера.
Это делается путем установки времени истечения на год назад
Возвращает
staticwithExpiry() public
withExpiry(DateTimeDateTimeImmutable $dateTime): static
Создать файл cookie с обновленной датой истечения
Параметры
-
DateTimeDateTimeImmutable$dateTime
Возвращает
staticwithHttpOnly() public
withHttpOnly(bool $httpOnly): static
Создать файл cookie с обновленным параметром HTTP Only
Параметры
-
bool$httpOnly
Возвращает
staticwithName() public
withName(string $name): static
Устанавливает имя cookie
Параметры
-
string$name
Возвращает
staticwithNeverExpire() public
withNeverExpire(): static
Создать новый файл cookie, который практически никогда не истечет.
Возвращает
staticwithPath() public
withPath(string $path): static
Создать новый файл cookie с обновленным путем
Параметры
-
string$path
Возвращает
staticwithSameSite() public
withSameSite(string|null $sameSite): static
Создать файл cookie с обновленным параметром SameSite.
Параметры
-
string|null$sameSite
Возвращает
staticwithSecure() public
withSecure(bool $secure): static
Создать файл cookie с обновленным параметром Secure
Параметры
-
bool$secure
Возвращает
staticwithValue() public
withValue(string|array $value): static
Создать файл cookie с обновленным значением.
Параметры
-
string|array$value
Возвращает
staticwithoutAddedValue() public
withoutAddedValue(string $path): static
Создать новый файл cookie без указанного пути
Параметры
-
string$path Путь для удаления
Возвращает
staticПодробное описание свойств
$defaults protected static
Атрибуты по умолчанию для файла cookie.
Тип
array$domain protected
Домен
Тип
string$expiresAt protected
Время истечения срока действия
Тип
DateTimeDateTimeImmutable|null$httpOnly protected
Только HTTP
Тип
bool$isExpanded protected
Было ли значение JSON развернуто в массив.
Тип
bool$name protected
Имя cookie
Тип
string$path protected
Путь
Тип
string$sameSite protected
SameSite
Тип
string|null$secure protected
Безопасный
Тип
bool$value protected
Необработанное значение cookie.
Тип
string|array
© 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/4.2/class-Cake.Http.Cookie.Cookie.html