# Класс HttpSoft\Cookie\CookieCreator
Хелпер для создания HttpSoft\Cookie\Cookie.
use HttpSoft\Cookie\CookieCreator;
// Из атрибутов
$cookie = CookieCreator::create('test2', 'value', '+1 hour', '.example.com', '/path', true, true, 'Lax');
// Из необработанного заголовка `Set-Cookie`
$cookie = CookieCreator::createFromString('name=value; Path=/; Secure; HttpOnly; SameSite=Lax; ...');
$cookie->__toString(); // 'name=value; Path=/; Secure; HttpOnly; SameSite=Lax; ...'
// эквивалентно:
(string) $cookie;
# Публичные методы
# create
Создает новый экземпляр HttpSoft\Cookie\Cookie.
/**
* @param string $name имя куки.
* @param string $value значение куки.
* @param DateTimeInterface|int|string|null $expire время истечения срока действия куки.
* @param string|null $path набор путей для куки.
* @param string|null $domain набор доменов для куки.
* @param bool|null $secure следует ли передавать куку только через безопасное соединение HTTPS.
* @param bool|null $httpOnly можно ли получить доступ к куке только через HTTP-протокол.
* @param string|null $sameSite будет ли кука доступна для кроссдоменных запросов.
* @return CookieInterface
*/
public static function create(
string $name,
string $value = '',
$expire = null,
?string $domain = null,
?string $path = '/',
?bool $secure = true,
?bool $httpOnly = true,
?string $sameSite = Cookie::SAME_SITE_LAX
): CookieInterface;
Если один или несколько аргументов невалидны, будет брошено исключение \InvalidArgumentException
.
$cookie = CookieCreator::create('name', 'value', '+1 hour', '.example.com', '/path', true, true, 'Lax');
$cookie->getName(); // 'name'
$cookie->getValue(); // 'value'
$cookie->getMaxAge(); // time() + 3600
$cookie->getExpires(); // 3600
$cookie->getDomain(); // '.example.com'
$cookie->getPath(); // '/path'
$cookie->isExpired(); // false
$cookie->isSession(); // false
$cookie->isSecure(); // true
$cookie->isHttpOnly(); // true
$cookie->getSameSite(); // 'Lax'
# createFromString
Создает новый экземпляр HttpSoft\Cookie\Cookie из необработанного заголовка Set-Cookie
.
public static function createFromString(string $string): CookieInterface;
Если $string
не является валидным необработанным заголовком Set-Cookie
, будет брошено исключение \InvalidArgumentException
.
$cookie = CookieCreator::createFromString('name=value; Path=/; Secure; HttpOnly; SameSite=Lax');
$cookie->getName(); // 'name'
$cookie->getValue(); // 'value'
$cookie->getMaxAge(); // 0
$cookie->getExpires(); // 0
$cookie->getDomain(); // null
$cookie->getPath(); // null
$cookie->isExpired(); // false
$cookie->isSession(); // true
$cookie->isSecure(); // true
$cookie->isHttpOnly(); // true
$cookie->getSameSite(); // 'Lax'
CookieCreator::createFromString(''); // throws InvalidArgumentException
CookieCreator::createFromString('name[]'); // throws InvalidArgumentException
Подробнее о заголовке Set-Cookie
смотрите здесь.