2 declare(strict_types = 1);
18 use Symfony\Component\HttpFoundation\Cookie;
24 return version_compare(PHP_VERSION,
'7.3.0',
'>=');
36 $cookies = array_filter(headers_list(),
function (
string $header) {
37 return stripos($header,
'Set-Cookie:') === 0;
39 $cookies = array_map(
function (
string $cookieHeader) use ($cookieNames) {
40 $payload = ltrim(substr($cookieHeader, 11));
41 $cookie = Cookie::fromString($payload);
42 $sameSite = $cookie->getSameSite();
44 if (empty($cookieNames) || in_array($cookie->getName(), $cookieNames,
true)) {
45 $sameSite = $sameSite ?? Cookie::SAMESITE_STRICT;
47 return (
string)Cookie::create(
50 $cookie->getExpiresTime(),
54 $cookie->isHttpOnly(),
59 if (!empty($cookies)) {
60 header_remove(
'Set-Cookie');
61 foreach ($cookies as $cookie) {
62 header(
'Set-Cookie: ' . $cookie,
false);
69 if (!in_array($cookieSameSite, [Cookie::SAMESITE_STRICT, Cookie::SAMESITE_LAX, Cookie::SAMESITE_NONE],
true)) {
70 $cookieSameSite = Cookie::SAMESITE_STRICT;
72 return $cookieSameSite;