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

Метод withExpires

Метод withExpires класса Cookie возвращает новый объект cookie, у которого изменено время истечения срока действия. Первым параметром передаётся момент времени, после которого браузер перестанет отправлять cookie на сервер. Объект Cookie является неизменяемым, поэтому исходный объект не меняется, а возвращается его копия с новым значением.

Синтаксис

public function withExpires(?int|string|\DateTimeInterface $expires): static

Пример

Давайте создадим cookie и зададим ему время жизни, передав строку с датой в формате, понятном конструктору DateTime:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class CookieController extends AbstractController { #[Route('/cookie', name: 'cookie_index')] public function index(): Response { $cookie = new Cookie('user', 'abcde'); $cookie = $cookie->withExpires('+1 hour'); $response = new Response('hello'); $response->headers->setCookie($cookie); return $response; } } ?>

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

Set-Cookie: user=abcde; expires=Sun, 14 Sep 2026 15:00:00 GMT; path=/; httponly

Пример

Давайте зададим время истечения через объект DateTime, отстоящий от текущего момента на один день:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class CookieController extends AbstractController { #[Route('/cookie', name: 'cookie_index')] public function index(): Response { $expires = new \DateTimeImmutable('+1 day'); $cookie = new Cookie('user', 'abcde'); $cookie = $cookie->withExpires($expires); $response = new Response('hello'); $response->headers->setCookie($cookie); return $response; } } ?>

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

Set-Cookie: user=abcde; expires=Mon, 15 Sep 2026 15:00:00 GMT; path=/; httponly

Пример

Давайте передадим время истечения в виде целого числа - количества секунд, прошедших с начала эпохи Unix:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class CookieController extends AbstractController { #[Route('/cookie', name: 'cookie_index')] public function index(): Response { $cookie = new Cookie('user', 'abcde'); $cookie = $cookie->withExpires(time() + 3600); $response = new Response('hello'); $response->headers->setCookie($cookie); return $response; } } ?>

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

Set-Cookie: user=abcde; expires=Sun, 14 Sep 2026 15:00:00 GMT; path=/; httponly

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

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