可终止中间件

2018-02-24 15:51 更新

有些时候中间件需要在 HTTP 响应已被发送到用户端之后才执行,例如,Laravel 内置的 「session」 中间件,保存 session 数据是在响应已被发送到用户端 之后 才执行。为了做到这一点,你需要定义中间件为「可终止的」。

use Illuminate\Contracts\Routing\TerminableMiddleware;

class StartSession implements TerminableMiddleware {

    public function handle($request, $next)
    {
        return $next($request);
    }

    public function terminate($request, $response)
    {
        // Store the session data...
    }

}

如你所见,除了定义 handle 方法之外, TerminableMiddleware 定义一个 terminate 方法。这个方法接收请求和响应。一旦定义了 terminable 中间件,你需要将它增加到 HTTP kernel 文件的全局中间件清单列表中。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号