# Class HttpSoft\Cookie\CookieCreator
Helper for creating HttpSoft\Cookie\Cookie.
use HttpSoft\Cookie\CookieCreator;
// From attributes
$cookie = CookieCreator::create('name', 'value', '+1 hour', '.example.com', '/path', true, true, 'Lax');
// From raw `Set-Cookie` header
$cookie = CookieCreator::createFromString('name=value; Path=/; Secure; HttpOnly; SameSite=Lax; ...');
$cookie->__toString(); // 'name=value; Path=/; Secure; HttpOnly; SameSite=Lax; ...'
// equivalently to:
(string) $cookie;
# Public methods
# create
Creates a new HttpSoft\Cookie\Cookie instance.
/**
* @param string $name the name of the cookie.
* @param string $value the value of the cookie.
* @param DateTimeInterface|int|string|null $expire the time the cookie expire.
* @param string|null $path the set of paths for the cookie.
* @param string|null $domain the set of domains for the cookie.
* @param bool|null $secure whether the cookie should only be transmitted over a secure HTTPS connection.
* @param bool|null $httpOnly whether the cookie can be accessed only through the HTTP protocol.
* @param string|null $sameSite whether the cookie will be available for cross-site requests.
* @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;
if one or more arguments are not valid, the \InvalidArgumentException
exception will be thrown.
$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
Creates a new HttpSoft\Cookie\Cookie instance from raw Set-Cookie
header.
public static function createFromString(string $string): CookieInterface;
If $string
is not a valid raw Set-Cookie
header, the \InvalidArgumentException
exception will be thrown.
$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
For more information about the Set-Cookie
header, see here.