Метод setMaxAge
Метод setMaxAge класса Response задаёт количество секунд, в течение которых ответ считается свежим (кешируемым). Он устанавливает заголовок Cache-Control со значением max-age. Первым параметром передаётся целое число секунд.
Синтаксис
public function setMaxAge(int $value): static
Пример
Давайте установим время кеширования ответа в 3600 секунд:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$response = new Response('article');
$response->setMaxAge(3600);
return $response;
}
}
?>
Результат выполнения кода:
article
Заголовок Cache-Control примет значение max-age=3600.
Пример
Давайте сравним поведение с нулевым значением, что отключает кеширование:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/user', name: 'article_user')]
public function user(): Response
{
$response = new Response('user');
$response->setMaxAge(0);
return $response;
}
}
?>
Результат выполнения кода:
user
Значение 0 указывает браузеру не кешировать ответ.
Смотрите также
-
класс
Response,
который представляет HTTP-ответ -
метод
setSharedMaxAge,
который задаёт время кеширования для прокси -
метод
setExpires,
который устанавливает дату истечения кеша -
метод
setPublic,
который разрешает публичное кеширование