ThinkPHP路由源码解析(二)(1)

简介: ThinkPHP路由源码解析(二)

路由是项目开发中比较重要的一个环节,每个项目都会使用路由进行管理接口,接下来本文会从源码方面带大家一起学习路由。

框架路由解析



前言

由于文章篇幅的原因,执行在新开一篇文章进行写。


在上一篇中给大家讲解了以下内容。


路由初识化简单分析

通过定义路由再谈门面

路由定义rule方法中的$this->group到底执行了什么

路由规则预处理

解析生成路由标识的快捷访问

但是在路由这块还有很多的内容要来讲解,接下来就会针对以下内容进行解析。


路由参数

变量规则

资源路由

路由配置(就是在route文件中的return中)

dispatch初认识

route-check 检测URL路由

。。。。。。。。。。。。。

接下来就一个一个进行详解。


同样给大家放一个关于路由的执行图,供大家进行参考。


image.png


一、路由参数和变量规则

同样代码先从这里开始,但是这次的关注点是在路由参数和变量规则上。


这俩个点只是简单的给大家说明一下使用和简单的执行流程。


比较深的理解就不去说明了, 因为这俩个点在平时开发过程中是不怎么使用的。


image.png


在上文中还记得在文件thinkphp/library/think/route/RuleItem.php中我们看到过关于路由参数的使用吧!


image.png


并且文档中也给了很多支持的参数,如下图。


image.png


那这个路由参数是怎么使用的呢!


接着使用之前我们使用的路由,并且给设置上URL后缀检测,支持匹配多个后缀。


image.png


那么我们设置的这个路由应该怎么访问呢!


如果按照正常的路由规则进行访问是会报错的,正确的访问方式请继续看。


image.png


正确的请求地址应该为http://www.source.com/index.php/hello/1.html,也就是在请求地址上需要拼接我们设置的后缀html。


image.png


这块的具体执行流程使用代码追踪器简单的看一下即可,咔咔这里就不做演示了。


对于路由参数咔咔这里在给大家演示一个案例,就基本结束了。


全局路由参数


路由参数这块最后一个说明的就是全局路由参数。


直接来到文档就可以看到。


image.png


这里咔咔设置俩个路由规则做测试,一个参数可选,一个必选,并且设置上路由规则添加文件后缀。


image.png


传参数时的请求地址。


image.png


不传参数的请求地址。


image.png


以上就是针对路由参数写的内容。


没有去做特别深的讲解,基本就是说明了怎么使用,有这个东西的存在,所以了解即可。


变量规则


同样的变量规则,这个在咔咔的日常开发工作中是更不可用的。


变量规则咔咔认为唯一的好处就是对参数进行过滤。


也就是说变量规则是在路由规则存在参数时才会存在的行为。


咔咔这里给大家提供一个简单的案例即可。


演示的案例


image.png


在路由后边追加参数pattern


那么接下来看一下这个请求如何写。


当参数为数字时可以输出传入的参数。


image.png


但是当传入字母的时候就会报错。


image.png


所以说变量规则就是对路由规则后的参数进行的过滤,也就是使用正则进行处理的。


截止到这里关于路由参数和变量规则就简单的说到这里了。


虽然说内容很简单,大多数都是使用案例给大家介绍怎么使用,没有去对源码进行深究。


第一平时开发不怎么会去使用。


第二在后文中还需要进一步深入了解,这里只是做一个认识。


其实说到这里估计还是有很多人不明白,为什么输入路由地址就可以出现对内的内容,这个后期会进行深入的了解。


相关文章
|
3天前
|
机器学习/深度学习 缓存 算法
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
|
6天前
|
XML Java 数据格式
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
16 3
|
4天前
|
存储 NoSQL 算法
Redis(四):del/unlink 命令源码解析
Redis(四):del/unlink 命令源码解析
|
6天前
|
XML Java 数据格式
深度解析 Spring 源码:揭秘 BeanFactory 之谜
深度解析 Spring 源码:揭秘 BeanFactory 之谜
13 1
|
3天前
|
XML Java 数据格式
Spring容器启动源码解析
Spring容器启动源码解析
|
6天前
|
Java Spring
深入解析Spring源码,揭示JDK动态代理的工作原理。
深入解析Spring源码,揭示JDK动态代理的工作原理。
10 0
|
12天前
|
安全 Java 数据安全/隐私保护
Java基础4-一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!(二)
Java基础4-一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!(二)
18 0
|
15天前
|
SQL 缓存 算法
【源码解析】Pandas PandasObject类详解的学习与实践
【源码解析】Pandas PandasObject类详解的学习与实践
|
15天前
|
存储 SQL 算法
【源码解析】深入解析 pandas的Block 类中算术运算和重排实现
【源码解析】深入解析 pandas的Block 类中算术运算和重排实现
|
15天前
|
数据可视化 数据挖掘 数据处理
【源码解析】深入Pandas的心脏DataFrame 含十大功能、源码实现与编程知识点
【源码解析】深入Pandas的心脏DataFrame 含十大功能、源码实现与编程知识点

推荐镜像

更多