laravel框架的路由匹配配置

2022-10-11 20:24:25 140 0
魁首哥

路由的定义过程中,通常有两个参数,一个是URI(唯一资源标识符),另一个是处理函数或处理函数定位,而大部分是处理函数定位,即控制器中相应的函数。那么,在 路由表 中就会请求形式与处理函数的对应信息,每一个对应信息为一个路由,通过Illuminate\Routing\Route实例进行保存,而所有的路由信息又通过Illuminate\Routing\RouteCollection实例保存形成路由表,而路由表则由Illuminate\Routing\ Router 类实例保存,这就是路由信息的结构。对于请求的处理,首先是在路由信息结构中找到对应的路由,即对应的Illuminate\Routing\Route实例,下面是这部分源码:文件Illuminate\ Foundation \Http\ Kernel .php

上面提到,所有的路由信息其实都保存在一个Illuminate\Routing\Router类实例中,而这个类实例存储在Kernel类的实例当中,于是通过“$this->router->dispatch($request);”将请求信息传递给路由信息存储实例。文件Illuminate\Routing\Router.php

在路由信息存储实例中,通过“$route=$this->findRoute($request);”来查找请求对应的路由实例,查找主要是根据请求的方法和请求URI来实现对应,当查找到请求对应的路由后,请求将会传递到对应的路由中去处理,即“$route->run($request)”。文件Illuminate\Routing\Route.php

在请求对应的路由中,会检测是否使用常规的控制分发器去处理,在初始的Laravel框架中使用的是常规控制分发器,通过服务容器自动生成这个控制分发器,这个服务是通过服务提供者ControllerServiceProvider注册的,下一步将会把请求及路由中关于处理函数的信息交给控制分发器去处理,这里对路由中关于处理函数的信息是以控制器类名和函数名给出的,即$class和$method。

收藏
分享
海报
0 条评论
140
上一篇:Coverity扫描PHP代码 下一篇:如何通过用户IP地址获取地理位置信息

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码