Laravel 中间件的本质

看了那么多讲中间件的文章,基本了解大致原理,但是对 array_reduce + 双层匿名函数 的实现方法还是有点迷糊,个人觉得较直观的理解,可以把中间件拆成两步:

  1. array_reduce() 将所有的匿名函数压缩成一个,并放到一个变量 $a 保存,这个变量的实际形式用表达式描述就是 $a($a($a($initial, 1), $current), $current)()()()...(可用 var_dump 印证),每一个 () 代表每一层将要执行的匿名函数,有几个 () 代表要执行几层
  2. $a($a($a($initial, 1), $current), $current)()()()... 真正开始执行,从最外层开始,因为必须得获得第一个参数的实际值,所以必须要执行第一个参数 $a($a($initial, 1), $current),因此就表现为一层层往里执行
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 3
Cooper

剥离出来的精简核心代码 github.com/huanghua581/middleware-...

3年前 评论
fatrbaby

本质就是一段一段可执行的php代码。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!