路由是项目开发中比较重要的一个环节,每个项目都会使用路由进行管理接口,接下来本文会从源码方面带大家一起学习路由。
框架路由解析
- 前言
- 一、路由参数和变量规则
- 二、资源路由
- 三、关于域名是什么时候设置的
- 四、路由配置-数组方式配置解读
- 五、dispatch初认识以及route-check 检测URL路由
- 六、request类是如何找到的
- 八、检测域名路由
- 九、总结
前言
由于文章篇幅的原因,执行在新开一篇文章进行写。
在上一篇中给大家讲解了以下内容。
路由初识化简单分析
通过定义路由再谈门面
路由定义rule方法中的$this->group到底执行了什么
路由规则预处理
解析生成路由标识的快捷访问
但是在路由这块还有很多的内容要来讲解,接下来就会针对以下内容进行解析。
路由参数
变量规则
资源路由
路由配置(就是在route文件中的return中)
dispatch初认识
route-check 检测URL路由
。。。。。。。。。。。。。
接下来就一个一个进行详解。
同样给大家放一个关于路由的执行图,供大家进行参考。
一、路由参数和变量规则
同样代码先从这里开始,但是这次的关注点是在路由参数和变量规则上。
这俩个点只是简单的给大家说明一下使用和简单的执行流程。
比较深的理解就不去说明了, 因为这俩个点在平时开发过程中是不怎么使用的。
在上文中还记得在文件thinkphp/library/think/route/RuleItem.php中我们看到过关于路由参数的使用吧!
并且文档中也给了很多支持的参数,如下图。
那这个路由参数是怎么使用的呢!
接着使用之前我们使用的路由,并且给设置上URL后缀检测,支持匹配多个后缀。
那么我们设置的这个路由应该怎么访问呢!
如果按照正常的路由规则进行访问是会报错的,正确的访问方式请继续看。
正确的请求地址应该为http://www.source.com/index.php/hello/1.html,也就是在请求地址上需要拼接我们设置的后缀html。
这块的具体执行流程使用代码追踪器简单的看一下即可,咔咔这里就不做演示了。
对于路由参数咔咔这里在给大家演示一个案例,就基本结束了。
全局路由参数
路由参数这块最后一个说明的就是全局路由参数。
直接来到文档就可以看到。
这里咔咔设置俩个路由规则做测试,一个参数可选,一个必选,并且设置上路由规则添加文件后缀。
传参数时的请求地址。
不传参数的请求地址。
以上就是针对路由参数写的内容。
没有去做特别深的讲解,基本就是说明了怎么使用,有这个东西的存在,所以了解即可。
变量规则
同样的变量规则,这个在咔咔的日常开发工作中是更不可用的。
变量规则咔咔认为唯一的好处就是对参数进行过滤。
也就是说变量规则是在路由规则存在参数时才会存在的行为。
咔咔这里给大家提供一个简单的案例即可。
演示的案例
在路由后边追加参数pattern
那么接下来看一下这个请求如何写。
当参数为数字时可以输出传入的参数。
但是当传入字母的时候就会报错。
所以说变量规则就是对路由规则后的参数进行的过滤,也就是使用正则进行处理的。
截止到这里关于路由参数和变量规则就简单的说到这里了。
虽然说内容很简单,大多数都是使用案例给大家介绍怎么使用,没有去对源码进行深究。
第一平时开发不怎么会去使用。
第二在后文中还需要进一步深入了解,这里只是做一个认识。
其实说到这里估计还是有很多人不明白,为什么输入路由地址就可以出现对内的内容,这个后期会进行深入的了解。