路由

路由的基础功能就是通过URL访问时,可以快速的根据URL解析出应执行的代码,基本思路就是从URL中按规则提取字符串,然后进行匹配。

简单

传统URL如:https://localhost/index.php?action=user_info&uid=1,定义路由配置文件route.php,解析url中的action的值,然后匹配相应控制器,将参数传入。

# route.php
return [
    'user_info' => '\App\Controllers\User::info'
];

restful地址通常是解析资源定位符,截取PATH_INFO及请求方式,按照指定规则进行访问。

Laravel

在Laravel中,路由定义在配置文件routes.php中,路由通常是URI、处理函数、请求方法来定义的。

在服务启动过程中,通过路由服务提供者RouteServiceProvider将已定义的信息注册到路由表。

之后通过Kernel将请求信息$request传递给路由处理实例进行路由分发。

分发请求中根据请求方法、URL来查找对应的路由实例,查找到之后将请求传递给对应的路由去处理。

监测是否为常规的控制分发器,通过服务容器自动生成,将请求及路由中处理函数信息交给控制分发器处理。

在控制分发器中,先判断是否有中间件需要处理,之后根据路由提供的响应函数信息通过服务容器来实例化控制器类,并调用对应的响应函数来生成响应内容。

关于服务容器

//TODO 补充代码

powered by Gitbook更新时间: 2021-05-27 10:52:40

results matching ""

    No results matching ""