Rav*_*yar 3 laravel laravel-middleware laravel-5.6
提到中间件有两种类型:之前和之后。在处理请求之前处理中间件之前和处理请求之后处理中间件之后。
但是可终止中间件的功能与后中间件完全相同。那么这两者的核心区别是什么呢?谢谢。
Terminable Middleware 在响应准备就绪后运行。
After Middleware 在请求之后但在响应准备之前运行。
例如,假设您想为所有或一组响应设置响应标头,您可以使用 after 中间件来实现。因为您需要在呈现请求之后但在返回响应之前设置标头。但是,如果要将会话数据存储在存储器中,则可以使用可终止中间件。
这是中的终止方法TerminableInterface:
/**
* Terminates a request/response cycle.
*
* Should be called after sending the response and before shutting down the kernel.
*/
public function terminate(Request $request, Response $response);
Run Code Online (Sandbox Code Playgroud)
您在 Terminable 中间件的 terminate 方法中收到请求和响应对象,但更改响应不会生效,因为响应已经返回。
| 归档时间: |
|
| 查看次数: |
2262 次 |
| 最近记录: |