Laravel HTML Response Cache Middleware
Provides caching of entire HTML responses in Laravel 5.
Via Composer
$ composer require infusionweb/laravel-middleware-response-cache
// within config/app.php
'providers' => [
//
InfusionWeb\Laravel\Http\Middleware\ResponseCacheServiceProvider::class,
];
Register as route middleware
// within app/Http/Kernel.php
protected $routeMiddleware = [
//
'cachebefore' => \InfusionWeb\Laravel\Http\Middleware\ResponseCacheBeforeMiddleware::class,
'cacheafter' => \InfusionWeb\Laravel\Http\Middleware\ResponseCacheAfterMiddleware::class,
//
];
Apply HTML response cache to routes
The following will cache the gallery
route.
// within app/Http/routes.php
Route::get('gallery', ['middleware' => ['cachebefore', 'cacheafter'], function () {
return 'pictures!';
}]);
Apply HTML response cache to controllers
The following will apply all default profiles to all methods within the GalleryController
.
// within app/Http/Controllers/GalleryController.php
public function __construct()
{
$this->middleware(['cachebefore', 'cacheafter']);
}
Middleware can be registered the same as 5.1, or by the following method.
Add to route middleware group
// within app/Http/Kernel.php
protected $middlewareGroups = [
'web' => [
//
'cachebefore' => \InfusionWeb\Laravel\Http\Middleware\ResponseCacheBeforeMiddleware::class,
'cacheafter' => \InfusionWeb\Laravel\Http\Middleware\ResponseCacheAfterMiddleware::class,
//
],
//
];
Apply HTML response cache to routes
All routes using the web
middleware group will be cached.
// within app/Http/routes.php
Route::group(['middleware' => ['web']], function () {
Route::get('gallery', function () {
return 'pictures!';
});
});
Enable and configure response caching
The middleware will only cache HTML responses when explicitly enabled. This is to allow development systems to operate normally by default, while easily allowing production systems to cache HTML responses.
Publish the package config file
$ php artisan vendor:publish --provider="InfusionWeb\Laravel\Http\Middleware\ResponseCacheServiceProvider"
You may now enable response caching and change the default cache time by editing the config/response-cache.php
file.
return [
'enable' => env('RESPONSE_CACHE_ENABLE', false),
// Length of time to cache the HTML response, in minutes.
'length' => env('RESPONSE_CACHE_LENGTH', 60),
];
The MIT License (MIT). Please see License File for more information.