[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 于 7年前 加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 1

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

7年前 评论

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