Метод setPublic
Метод setPublic класса Response устанавливает заголовок Cache-Control в значение public. Это означает, что ответ может быть закэширован не только браузером клиента, но и промежуточными прокси-серверами и CDN. Метод не принимает параметров и возвращает текущий объект Response, что позволяет использовать цепочку вызовов.
Синтаксис
$response->setPublic();
Пример
Давайте создадим ответ и пометим его как публичный:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
class ArticleController extends AbstractController
{
public function index(): Response
{
$response = new Response('hello');
$response->setPublic();
return $response;
}
}
?>
Результат выполнения кода (заголовки ответа):
Cache-Control: public
Пример
Давайте сравним поведение с методом setPrivate, который запрещает кэширование:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
class ArticleController extends AbstractController
{
public function index(): Response
{
$response = new Response('article');
$response->setPrivate();
return $response;
}
}
?>
Результат выполнения кода (заголовки ответа):
Cache-Control: private
Смотрите также
-
метод
setPrivate,
который запрещает публичное кэширование -
метод
setMaxAge,
который задаёт время жизни кэша в секундах -
метод
setSharedMaxAge,
который задаёт время жизни кэша для прокси-серверов -
класс
Response,
который представляет HTTP-ответ