stounhandj / laravel-cache-route
Cache (HTML) output of entire route to speedup your Laravel application
Requires
- php: ^7.2 || ^8.0
- illuminate/contracts: ^6.9|^7.0|^8.0|^9.0
- illuminate/http: >=6.0
- illuminate/support: >=6.0
- laravel/framework: ^7.0|^8.0|^9.0
This package is auto-updated.
Last update: 2024-10-27 21:44:53 UTC
README
This is the Laravel 7.0+ / PHP 7.2+ package, which provides the ability to cache routes for the allotted time.Installation
$ composer require stounhandj/laravel-cache-route
Or
{ "require": { "stounhandj/laravel-cache-route": "^v1.1" } }
Usage
Add middleware to the file kernel.php:
'cache.page' => \StounhandJ\LaravelCacheRoute\Middleware\CacheRoteMiddleware::class,
Now, use the middleware to cache the HTML output of an entire page from your route like so:
-
In your route:
Route::get('/', function () { // })->middleware("cache.page")
You may also use route groups. Please look up Laravel documentation on Middleware to learn more here
Configuration Options
You can configure the TTL (Time-To-Live) to cast per second:
- In your route:
Route::get('/', function () { // })->middleware("cache.page:10")
- Environment (On all routes at once):
CACHE_TTL=10
Thoughts
Be VERY cautions when using a whole page cache such as this. Remember contents of the cache are visible to ALL your users.
- For, "mostly static" content, go for it!
- For, "mostly dynamic" content or heavily user-customized content, AVOID this strategy. User specific information is gathered server side. So, you essentially WANT to hit the server.
Good rule of thumb: If two different users see different pages on hitting the same URL, DO NOT cache the output using this strategy. An alternative may be to cache database queries.