mnshankar / laravel-cache-route
缓存整个路由的输出(HTML)以提高您的Laravel应用程序的速度
v1.0
2017-05-26 15:23 UTC
Requires
- php: >=5.4.0
- illuminate/support: >=5.0
This package is not auto-updated.
Last update: 2024-09-23 15:56:21 UTC
README
这是一个Laravel 5.0+/PHP 5.4+包,可以将整个“get”请求的响应缓存起来,以便后续对相同URL的请求可以大幅提高速度。
安装
已尽最大努力确保该包的安装和使用非常简单。在“require”该包之后,您就可以开始使用了!无需设置服务提供者、外观、配置文件等。
$ composer require mnshankar/laravel-cache-route
使用
编辑您的http kernel.php文件,包括以下内容
'cache.route'=>'mnshankar\Cache\Middleware\CacheRoute',
现在,使用中间件来缓存整个页面的HTML输出,无论是从控制器还是从路由,如下所示
-
在您的控制器中
function __construct() { $this->middleware('cache.route'); }
-
在您的路由中
使用Laravel 5.0
Route::get('my/page', ['middleware' => 'cache-route', function() { // }]);
使用Laravel 5.1+
您可以使用Laravel 5.0风格继续使用,或者使用链式调用
Route::get('/', function () { // })->middleware(['cache-route']);
您还可以使用路由分组。请查阅Laravel文档了解中间件的相关内容 https://laravel.net.cn/docs/5.2/middleware
配置选项
该包使用两个配置选项(通过环境参数设置)
-
缓存TTL(生存时间)
CACHE_TTL=30
此参数指定了30分钟的缓存TTL值
请注意,您始终可以使用php artisan cache:flush来清除您的应用程序缓存
-
启用缓存(默认为true)
CACHE_ENABLE=false
此参数可以用来关闭缓存
想法
在使用此类整个页面缓存时,请务必谨慎。请记住,缓存的内容对您的所有用户都是可见的。
- 对于“主要静态”内容,请大胆尝试!
- 对于“主要动态”内容或高度用户自定义的内容,请避免使用此策略。用户特定信息是在服务器端收集的。因此,您本质上需要连接到服务器。
好的经验法则:如果两个不同的用户在点击相同URL时看到不同的页面,则不要使用此策略缓存输出。另一种选择可能是缓存数据库查询。