РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
517 of 1361 menu

Метод withPartitioned класса Cookie

Метод withPartitioned класса Cookie возвращает новый объект cookie с включённым флагом Partitioned. Такой cookie хранится в отдельной партиции браузера, привязанной к сайту верхнего уровня. Это нужно для cookie, которые устанавливаются в контексте сторонних ресурсов, например внутри iframe. Метод не меняет исходный объект, а создаёт его копию.

Параметров метод не принимает. Флаг Partitioned всегда устанавливается в значение true.

Синтаксис

$cookie->withPartitioned();

Пример

Давайте создадим cookie и включим у него флаг Partitioned:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; class CookieController extends AbstractController { public function index(): Response { $cookie = Cookie::create('token') ->withValue('abcde') ->withPartitioned(); $res = new Response('hello'); $res->headers->setCookie($cookie); return $res; } } ?>

Результат выполнения кода в заголовке ответа:

Set-Cookie: token=abcde; partitioned

Пример

Давайте проверим, что метод возвращает новый объект, а исходный cookie остаётся без флага Partitioned:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; class CookieController extends AbstractController { public function index(): Response { $cookie = Cookie::create('token')->withValue('abcde'); $partitioned = $cookie->withPartitioned(); echo $cookie->isPartitioned() ? 'true' : 'false'; echo "\n"; echo $partitioned->isPartitioned() ? 'true' : 'false'; return new Response(); } } ?>

Результат выполнения кода:

false true

Пример

Давайте соберём cookie со всеми основными флагами и включим партиционирование:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; class CookieController extends AbstractController { public function index(): Response { $cookie = Cookie::create('token') ->withValue('abcde') ->withSecure(true) ->withHttpOnly(true) ->withSameSite('none') ->withPartitioned(); $res = new Response('hello'); $res->headers->setCookie($cookie); return $res; } } ?>

Результат выполнения кода в заголовке ответа:

Set-Cookie: token=abcde; secure; httponly; samesite=none; partitioned

Смотрите также

  • класс Cookie,
    который представляет HTTP-cookie
  • метод create,
    который создаёт новый объект cookie
  • метод withValue,
    который задаёт значение cookie
  • метод withSameSite,
    который задаёт атрибут SameSite
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить