TP5源码:框架执行流程与路由解读(二)
2019-11-05 本文已影响0人
机智的老刘明同志
书接上文,路由中的get方法指向think\Route.php中的addRule方法
老样子,think\Route类的构造函数设置一些公共变量(其中App $app 就是通过反射机制拿到并注入)
随后我们跳转到RuleGroup页面下的addRule方法。这里参数内容如下图所示:
我们以路由 Route::get('hello/:name', 'index/hello'); 为例:
其中new RuleItem 会创建路由规则实例
1.创建路由规则实例 RuleItem:
1.路由规则预处理setRule
setRule主要会进行以下几种操作
判断是否是完整匹配路由(路由尾部的$符号)
rule参数左斜线截取
成员属性rule定义(最后从hello:name转换成了hello/<name>)
生成路由标识的快捷访问setRuleName();