Класс Cookie
Объект Cookie для создания куки и преобразования его в значение заголовка
HTTP-куки (также называемые веб-куки, куки Интернета, куки браузера или просто куки) — это небольшой фрагмент данных, отправляемый веб-сайтом и хранящийся на компьютере пользователя веб-браузером пользователя во время его навигации по сайту.
Куки были разработаны в качестве надежного механизма для веб-сайтов для запоминания информационных состояний (например, товаров, добавленных в корзину интернет-магазина) или для записи активности пользователя в браузере (включая нажатие определенных кнопок, вход в систему или запись посещенных страниц в прошлом). Они также могут использоваться для запоминания произвольных данных, которые пользователь вводил ранее в поля форм, например, имена и настройки.
Объекты Cookie неизменяемы, и вы должны повторно присваивать переменные при изменении объектов cookie:
$cookie = $cookie->withValue('0'); См.: \Cake\Http\Cookie\CookieCollection для работы со списками куки.
См.: \Cake\Http\Response::getCookieCollection() для работы с куки ответа.
Ссылка: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03
Ссылка: https://ru.wikipedia.org/wiki/HTTP-куки
Константы
-
stringEXPIRES_FORMAT'D, d-M-Y H:i:s T'
Формат атрибута истечения срока действия.
-
stringSAMESITE_LAX'Lax'
Значение атрибута SameSite: Lax
-
stringSAMESITE_NONE'None'
Значение атрибута SameSite: None
-
stringSAMESITE_STRICT'Strict'
Значение атрибута SameSite: Strict
-
array<string>SAMESITE_VALUES[self::SAMESITE_LAX, self::SAMESITE_STRICT, self::SAMESITE_NONE]
Допустимые значения для атрибута "SameSite".
Краткое описание свойств
- $defaults protected static
array<string, mixed>Значения по умолчанию для куки.
- $domain protected
stringДомен
- $expiresAt protected
DateTimeDateTimeImmutable|nullВремя истечения срока действия
- $httpOnly protected
boolТолько HTTP
- $isExpanded protected
boolРасшифрован ли JSON-значение в массив.
- $name protected
stringИмя куки
- $path protected
stringПуть
- $sameSite protected
string|nullSameSite
- $secure protected
boolЗащищенный
- $value protected
array|stringНеобработанное значение куки.
Краткое описание методов
-
__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-only.
-
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, array|string $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
-
array|string$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): array|string
Метод explode для возврата массива из строки, установленной в CookieComponent::_flatten(). Поддерживает обратную совместимость с чтением с CookieComponent::_flatten() версии 1.x.
Параметры
-
string$string Строка, содержащая закодированные данные JSON или простую строку.
Возвращает
array|string_flatten() protected
_flatten(array $array): string
Метод implode для сохранения ключей в многомерных массивах
Параметры
-
array$array Соответствие ключа и значения
Возвращает
string_setValue() protected
_setValue(array|string $value): void
Установщик для атрибута value.
Параметры
-
array|string$value Значение для хранения.
Возвращает
voidcheck() public
check(string $path): bool
Проверяет, существует ли значение в данных cookie.
Этот метод развернет сериализованные сложные данные при первом использовании.
Параметры
-
string$path Путь для проверки
Возвращает
boolcreate() public static
create(string $name, array|string $value, array<string, mixed> $options = []): static
Метод фабрики для создания экземпляров Cookie.
Параметры
-
string$name Имя cookie
-
array|string$value Значение cookie
-
array<string, mixed>$options optional Параметры cookie.
Возвращает
staticСм. также
createFromHeaderString() public static
createFromHeaderString(string $cookie, array<string, mixed> $defaults = []): static
Создать экземпляр Cookie из строки заголовка "set-cookie".
Параметры
-
string$cookie Строка заголовка Cookie.
-
array<string, mixed>$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
Получить идентификатор для cookie
Cookies уникальны для набора имя, домен, путь.
Возвращает
stringgetName() public
getName(): string
Получить имя cookie
Возвращает
stringgetOptions() public
getOptions(): array<string, mixed>
Получить параметры cookie
Возвращает
array<string, mixed>getPath() 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(): array|string
Получает значение cookie
Возвращает
array|stringisExpanded() public
isExpanded(): bool
Проверяет, было ли развернуто значение cookie
Возвращает
boolisExpired() public
isExpired(DateTimeDateTimeImmutable $time = null): bool
Проверить, истек ли срок действия cookie по сравнению с $time
Cookies без даты истечения срока действия всегда возвращают false.
Параметры
-
DateTimeDateTimeImmutable$time optional
Возвращает
boolisHttpOnly() public
isHttpOnly(): bool
Проверить, является ли cookie только HTTP
Возвращает
boolisSecure() public
isSecure(): bool
Проверить, является ли cookie безопасным
Возвращает
boolread() public
read(string|null $path = null): mixed
Чтение данных из cookie
Этот метод развернет сериализованные сложные данные при первом использовании.
Параметры
-
string|null$path optional Путь для чтения данных
Возвращает
mixedsetDefaults() public static
setDefaults(array<string, mixed> $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<string, mixed>$options Параметры по умолчанию.
Возвращаемое значение
voidtoArray() public
toArray(): array<string, mixed>
Получение данных cookie в виде массива.
Возвращаемое значение
array<string, mixed>toHeaderValue() 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(array|string $value): static
Создание файла cookie с обновленным значением.
Параметры
-
array|string$value
Возвращаемое значение
staticwithoutAddedValue() public
withoutAddedValue(string $path): static
Создание нового файла cookie без указанного пути
Параметры
-
string$path Путь для удаления
Возвращаемое значение
staticПодробное описание свойств
$defaults protected static
Атрибуты по умолчанию для файла cookie.
Тип
array<string, mixed>$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.
Тип
array|string
© 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.3/class-Cake.Http.Cookie.Cookie.html