Laravel Response 中间件缓存,一步加速页面加载速度

项目地址:https://github.com/flc1125/laravel-middleware-cache-response

功能


  • 支持缓存渲染后数据
  • 支持指定缓存过期时间(默认10分钟)
  • header头输出缓存命中状态、缓存Key及过期时间

安装


composer require flc/laravel-middleware-cache-response

配置


\app\Http\Kernel.php文件中$routeMiddleware增加:

'cache.response' => \Flc\Laravel\Http\Middleware\CacheResponse::class,

// cache.response 命名随意,你开心就好

使用


<?php
Route::get('/', function () {
    return view('welcome');
})->middleware('cache.response');

Route::get('/', function () {
    return view('welcome');
})->middleware('cache.response:20');  // 指定缓存时间20分钟

附录


缓存规则

  • 当前URL全路径md5

Headers

X-Cache:Missed
X-Cache-Expires:2018-03-29 15:08:29 CST
X-Cache-Key:6c9b19774e2c304a42d200f314d8c80b

TODO


  • 增加statusheader的支持

Licenes


MIT

Flc゛ has written 3 articles

该作者很低调,还没有自我介绍~

积分:337 等级:P4 职业:未设置 城市:未设置

4 条回复

  1. Flc゛ Flc゛ says:
    @ PostData

    目前的缓存机制是根据URL作为标识的。不涉及session相关(csrf跟session有关),如需要规则,可继承重写方法resolveKey即可

  2. Flc Flc says:
    缓存key的定义是所有网址。主要开源,就无法100%满足所有使用者的需求,只能尽量满足大多使用者。你可以依靠php多态继承的方式,继承`Flc\Laravel\Http\Middleware\CacheResponse`后,重写义`resolveKey`方法
  3. 小陆 小陆 says:
    一般网址都有时间参数!然后你这个缓存=没任何用

登录后才能进行评论,立即登录?