infusionweb / laravel-middleware-response-cache
Provides caching of HTML pages in Laravel responses.
Requires
- php: >=5.5.9
- illuminate/http: ^5.1
- illuminate/support: ^5.1
This package is auto-updated.
Last update: 2024-10-28 10:14:43 UTC
README
Provides caching of entire HTML responses in Laravel 5.
Installation
Via Composer
$ composer require infusionweb/laravel-middleware-response-cache
Laravel 5.1 Usage
Add the service provider
// 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']); }
Laravel 5.2 Usage
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), ];
Credits
License
The MIT License (MIT). Please see License File for more information.