CacheMiddleware
in package
implements
MiddlewareInterface
Частный HTTP-кэш клиента (RFC 9111) поверх любого PSR-16 хранилища.
Кэширует ответы на GET/HEAD с кодами 200, 203, 204, 300, 301, 404, 410
по Cache-Control: max-age или Expires (либо $defaultTtl, если сервер
срок не указал). Устаревшую запись с валидаторами (ETag,
Last-Modified) проверяет условным запросом: на 304 Not Modified отдаёт
сохранённое тело и продлевает срок. Учитывает no-store и no-cache
запроса и ответа, Vary (включая *), а небезопасные методы (POST,
PUT, PATCH, DELETE) инвалидируют запись адреса. Потоковые ответы
(в файл/обработчик) не кэшируются.
Table of Contents
Interfaces
- MiddlewareInterface
- Звено конвейера обработки запроса.
Methods
- __construct() : mixed
- process() : Response
- Обработать запрос, передав управление дальше по конвейеру.
Methods
__construct()
public
__construct(CacheInterface $cache[, int $defaultTtl = 0 ][, callable(): int|null $clock = null ]) : mixed
Parameters
- $cache : CacheInterface
-
PSR-16 хранилище
- $defaultTtl : int = 0
-
срок жизни ответа без явных указаний сервера (0 — не кэшировать)
- $clock : callable(): int|null = null
-
источник Unix-времени (для тестов)
Tags
process()
Обработать запрос, передав управление дальше по конвейеру.
public
process(Request $request, callable(Request): Response $next) : Response
Parameters
- $request : Request
-
входящий запрос
- $next : callable(Request): Response
-
следующий обработчик конвейера
Attributes
- #[Override]
Return values
Response —полученный ответ