spatie/laravel-responsecache

Speed up a Laravel application by caching the entire response

Maintainers

👁 spatie

Package info

github.com/spatie/laravel-responsecache

pkg:composer/spatie/laravel-responsecache

Statistics

Installs: 8 971 894

Dependents: 56

Suggesters: 0

Stars: 2 802

Open Issues: 0

8.4.1 2026-05-25 11:09 UTC

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 313f9b66794319238fb0ce0391ab1962b448961e

performancecacheresponselaravelspatielaravel-responsecache

This package is auto-updated.

Last update: 2026-06-26 09:44:43 UTC


README

👁 Logo for laravel-responsecache

Speed up an app by caching the entire response

👁 Latest Version on Packagist
👁 GitHub Tests Action Status
👁 GitHub Code Style Action Status
👁 Total Downloads

This Laravel package can cache an entire response. By default it will cache all successful GET requests that return text based content (such as HTML and JSON) for a week. This could potentially speed up the response quite considerably.

The first time a request comes in, the package will save the response before sending it to the user. When the same request comes in again, the cached response is returned without going through the entire application.

Here's a quick example:

use Spatie\ResponseCache\Middlewares\CacheResponse;

Route::middleware(CacheResponse::for(minutes(10)))->group(function () {
 Route::get('/posts', [PostController::class, 'index']);
 Route::get('/posts/{post}', [PostController::class, 'show']);
});

For pages where brief staleness is acceptable, you can use flexible caching. After the lifetime expires, the stale response is still served instantly while the cache refreshes in the background. Once the grace period is over, the cache is considered expired and the next request will be fully recalculated:

use Spatie\ResponseCache\Middlewares\FlexibleCacheResponse;

Route::get('/dashboard', [DashboardController::class, 'index'])
 ->middleware(FlexibleCacheResponse::for(lifetime: hours(1), grace: minutes(5)));

Support us

👁 Image

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.

Documentation

All documentation is available on our documentation site.

Testing

You can run the tests with:

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.