thinkphp框架路由的定义与使用

thinkphp框架路由的定义与使用

ThinkPHP框架具体强大的路由定义功能,基本上能满足网站路由的所有要求,包括规则路由、正则路由、静态路由,还对路由的闭包支持。

下面介绍ThinkPHP框架路由的定义与使用。

路由的定义

启用路由。ThinkPHP路由配置生效需要满足三个条件:

(1)在配置文件中开启路由功能,如下图1;

(2)URL支持PATH_INFO模式或者兼容URL模式;

(3)配置文件中使用URL_ROUTE_RULES参数进行配置,如下图2。

thinkphp框架路由的定义与使用_第1张图片

路由定义格式。定义的格式有两种:

(1) '路由表达式'=>'路由地址和传入参数;

(2)array('路由表达式','路由地址','传入参数')。

thinkphp框架路由的定义与使用_第2张图片

路由参数配置。这些参数的作用是限制定义的路由规则的生效条件,主要有三种作用,分别是限制URL后缀、限制请求类型、自定义检测。

thinkphp框架路由的定义与使用_第3张图片

路由的使用

规则路由。规则路由表达式包含静态地址和动态地址,或者两种地址的结合,如下图。

注释:每个参数中以“:”开头的参数都表示动态参数。例如:id表示该处匹配到的参数可以使用$_GET['id']方式获得,:year、 :month 、:day 则分别对应$_GET['year']、 $_GET['month'] 和 $_GET['day']。

thinkphp框架路由的定义与使用_第4张图片

正则路由,必须以“/”开头,表达式不但支持正则的定义,而且还支持函数过滤处理。

thinkphp框架路由的定义与使用_第5张图片

静态路由,表达式中路由的定义不包含动态参数,执行效率高,但作用有限。静态路由的格式为:[控制器/操作?]参数1=值1&参数2=值2。

注意:为了不影响动态路由的遍历效率,静态路由采用URL_MAP_RULES定义和动态路由区分开来。

thinkphp框架路由的定义与使用_第6张图片

使用闭包的方式定义路由。这种方式不需要执行控制器的操作方法,如下图。

thinkphp框架路由的定义与使用_第7张图片

你可能感兴趣的:(thinkphp5开发)