[5.6] 新功能播报:增加一个 HTTP 头设置缓存中间件

file

这个中间件可以在设置路由的时候简单的设置来设置 HTTP 缓存头。

添加中间件

因为目前 Laravel 只是在 illuminate/http 中添加了这么一个中间件,但是并未添加到 laravel/laravelapp/Http/Kernel.php 中,所以暂时你需要手动添加到 protected $routeMiddleware

protected $routeMiddleware = [
    'cache' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
];

使用

自定义 etag:

Route::get('/my-route', function () {
    return view('welcome');
})->middleware('cache:max_age=180;s_maxage=60;etag=abc;immutable=true');

当然,你也可以使用 response 的 content 进行 md5 作为 etag:

Route::get('/my-route', function () {
    return view('welcome');
})->middleware('cache:max_age=180;s_maxage=60;etag;immutable');

吐槽

虽然在应用层支持了设置缓存头信息,但是目前还没有支持在请求进入前进行一个良好的 If-Not-Match 处理。

参考 PR: https://github.com/laravel/framework/pull/...

本作品采用《CC 协议》,转载必须注明作者和本文链接
Seven 的代码太渣,欢迎关注我的新拓展包 medz/cors 解决 PHP 项目程序设置跨域需求。
本帖由 Summer 于 6年前 加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

这个 PR 是一个 Symfony 核心开发组员提交的

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
创始人 @ Odore Inc.
文章
33
粉丝
202
喜欢
532
收藏
198
排名:23
访问:24.7 万
私信
所有博文
社区赞助商