$path =
$options['path'
] ?: self::
$defaults['path'
];
$domain =
$options['domain'
] ?: self::
$defaults['domain'
];
// empty string SameSite should use the default for browsers
$samesite =
$options['samesite'
] ?: self::
$defaults['samesite'
];
$raw =
$options['raw'
];
$secure =
$options['secure'
];
$httponly =
$options['httponly'
];
$this->
validateName($name,
$raw);
$this->
validatePrefix($prefix,
$secure,
$path,
$domain);
$this->
validateSameSite($samesite,
$secure);
$this->prefix =
$prefix;
$this->name =
$name;
$this->value =
$value;
$this->expires =
static::
convertExpiresTimestamp($options['expires'
]);
$this->path =
$path;
$this->domain =
$domain;
$this->secure =
$secure;
$this->httponly =
$httponly;
$this->samesite =
ucfirst(strtolower($samesite));