File-based full-page cache driver --- stores cached HTTP responses on disk with tag-based invalidation and atomic writes.
composer require marko/page-cache marko/page-cache-fileuse Marko\PageCache\Attributes\Cacheable;
use Marko\Routing\Attributes\Get;
use Marko\Routing\Http\Response;
class ProductController
{
#[Get('/products/{id}')]
#[Cacheable(ttl: 3600, tags: ['products', 'product-{id}'])]
public function show(int $id): Response
{
return Response::ok($this->productRepository->find($id));
}
}Full usage, API reference, and examples: marko/page-cache-file