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

Метод setExpires

Метод setExpires класса Response устанавливает HTTP-заголовок Expires. Этот заголовок сообщает браузеру и промежуточным кешам дату и время, после которого ответ считается устаревшим. Первым параметром передаётся объект DateTimeInterface с нужной датой. Метод возвращает $this, что позволяет выстраивать цепочку вызовов.

Синтаксис

public function setExpires(?DateTimeInterface $date): static

Пример

Давайте установим дату устаревания ответа на один час вперёд:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $response = new Response('article'); $response->setExpires(new \DateTime('+1 hour')); return $response; } } ?>

После выполнения кода браузер получит заголовок Expires с датой, отстоящей на час от текущего момента. До наступления этой даты ответ может быть взят из кеша.

Пример

Давайте установим конкретную дату устаревания ответа:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/old', name: 'article_old')] public function old(): Response { $response = new Response('article'); $response->setExpires(new \DateTime('2026-01-01 00:00:00')); return $response; } } ?>

После выполнения кода заголовок Expires будет содержать дату Thu, 01 Jan 2026 00:00:00 GMT.

Пример

Давайте сбросим дату устаревания, передав null:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/reset', name: 'article_reset')] public function reset(): Response { $response = new Response('article'); $response->setExpires(null); return $response; } } ?>

После выполнения кода заголовок Expires будет удалён из ответа, и кеширование по этой дате действовать не будет.

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

  • класс Response,
    который представляет HTTP-ответ
  • метод setMaxAge,
    который задаёт время жизни ответа в секундах
  • метод setLastModified,
    который задаёт дату последнего изменения
  • метод setPublic,
    который разрешает публичное кеширование
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить