SlimPHP框架运行原理

SlimPHP主要有两个大的部分,路由(Router)部分和中间件(Middleware)部分。
首先,我们需要了解的是路由部分。
其实路由部分没什么难度,Route对象主要存储的是来自map()方法的内容。
Router是一个控制器,所有对Route的操作都要经手Router,职责有创建Route对象和dispatch(Request)到匹配的Route。
匹配的Route将会被放到Request里面,Route中的Closure(其中有业务逻辑代码)在中间件部分执行。

然后,我们来了解一下中间件部分。
所有中间件会形成一个栈(stack)结构,从最外层的中间件到最里层的中间件依次执行。
当然,最里层的中间件会继续调用$next,那么这个$next是何方神圣呢?
其实这个$next就是App对象,在PHP中,有一个魔术方法__invoke()可以把一个对象当成函数来用。
这边的App类就有一个__invoke()方法,当调用到最里层的中间件的时候,就相当于会调用$app($request, $response)。
在这个__invoke()方法里面,将会调用路由部分存储在Request中的Route中携带的Closure业务逻辑。
具体怎么执行的,请查看相关代码。

差不多就这些内容。

标签: none

添加新评论