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

Метод setSharedMaxAge

Метод setSharedMaxAge класса Response задаёт время в секундах, в течение которого ответ может храниться в разделяемом кэше. В отличие от setMaxAge, этот метод управляет кэшированием на промежуточных серверах: прокси, балансировщиках и CDN. Первым параметром передаётся целое число секунд. Метод возвращает текущий объект Response, что позволяет строить цепочки вызовов.

Синтаксис

$response->setSharedMaxAge(int $seconds): static

Пример

Давайте установим время разделяемого кэширования в 60 секунд:

<?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('hello'); $response->setSharedMaxAge(60); return $response; } } ?>

После выполнения кода в заголовках ответа появится Cache-Control со значением "public, s-maxage=60".

Пример

Давайте проверим установленное значение через заголовок ответа:

<?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->setSharedMaxAge(120); echo $response->headers->get('Cache-Control'); return $response; } } ?>

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

"public, s-maxage=120"

Пример

Давайте установим значение 0, чтобы запретить разделяемое кэширование:

<?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('user'); $response->setSharedMaxAge(0); echo $response->headers->get('Cache-Control'); return $response; } } ?>

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

"public, s-maxage=0"

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

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