CloudCastle Curl

CacheMiddleware
in package
implements MiddlewareInterface

FinalYes

Частный 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
throws
InvalidArgumentException

если срок жизни по умолчанию отрицательный

process()

Обработать запрос, передав управление дальше по конвейеру.

public process(Request $request, callable(Request): Response $next) : Response
Parameters
$request : Request

входящий запрос

$next : callable(Request): Response

следующий обработчик конвейера

Attributes
#[Override]
Return values
Response —

полученный ответ

On this page

Search results