php路由请求规则,PHP | TP5路由规则

路由地址

一、什么是路由地址?

路由地址,就是用户用路由规则访问页面时,真实跳转到的地址;二、路由地址的种类?

1、路由到:模块/控制器/操作; :2、路由到:操作方法;

3、路由到:类的方法(动态与静态)4、路由到:重定向地址(301)5、路由到:闭包函数

路由规则

一、什么是路由规则?

路由规则就是用户最终用来访问的URL地址并非原始URL地址;二、路由规则有哪几部分组成?

路由标识符  :变量名2/ :变量名21 [:可选变量名]

静态部分  动态态部分

路由到:模块/控制器/操作

一、基本语法:

Route:rule(路由规则;模块/控制器/操作);二、重点理解

1、可访问控制器: 'url_ controller_ layer' => 'controller',2、按从右到左的顺序进行地址解析:操作->控制器->模块3、支持额外参数(查询方式): ?变量名1=值1&变量名2=值2...

二、直接路由到:操作方法

、基本语法:

Route.:rule(路由规则,@模块/控制器/操作");二、重点理解

1、跳过模块初始化,直接执行控制器中的方法;2、模块初始化:配置文件和公共文件;

3、调用视图时必须设置完整模板文件的路径。

三、直接路由到:闭包函数

一、基本语法:

Route.:rule(路由规则,function ([参数]){

//闭包函数代码});

二、重点理解

1、闭包就是函数中的函数,或方法中的方法;

2、闭包函数可以接受通过路由规则传过来的参数;

3、不再执行任何操作,相当于把方法直接定义在参数中。

三、直接路由到:类的方法

一、基本语法:

Route:rule(路由规则,\完整命名空间类名@动态操作");Route:rule(路由规则,\完整命名空间类名::静态操作");二、重点理解

1、类必须创建在应用目录或子目录中;

2、静态方法支持外部动态访问,但建议在语法上分开;3、为了项目规范,除非不得已,否则尽可能少用。

四、直接路由到:重定向地址

一、基本语法:

Route.:rule(路由规则,重定向地址);二、重点理解

1、重定向地址: '/' 或者' http://开头的外部地址;

2、'I': 是以当前可访问的Web目录开始:如public;3、外部地址是301跳转,适用于网站迁移

路由参数

一、什么是路由参数?

路由参数是用来验证当前的路由规则是否有效的重要依据;二、路由参数的种类?

1、请求类型:["method'=>'getlpost'];

2、URL后缀:["ext=>'htmllshtml]/ [deny_ ext=>'php];3、回调函数:"callback'=>'回调函数名称];4、域名检测:"domain'=>tp5.com];

请求类型

一、请求类型

最常用的是:GET和POST,其它了解即可(如delete,put等);

二、使用方法

1、如注册方法已声明类型则无设置: Route:get()/post();2、Route.rule(/any():['method'=> getlpost'];

3、使用路由配置文件数组定义:['method'=>'getlpost];

三、用回调来验证路由规则

、说明

回调函数返回true则路由规则有效,否则无效;二、使用方法:

1、回调函数写在应用公共方法中: common.php;2、语法: [callback'=>'回调函数名称];

例如:用回调来检测是否存在某个应用配置项,来决定是否执行路由规则。

什么是正则表达式?

描述字符串匹配模式,主要用于字符串的查找/替换与分割;二、正则表达式有几部分组成?

1、由:定界符、原子、元字符和修正符,四部分组成;

2、定界符:通常用#,~~,/等非原子或元字符反斜杠都行;3、原子:需要匹配的字符,由可见与不可见字符组成;4、元字符:限定或修饰原子部分,不能单独使用;5、修正符:限定或修饰整个正则表达式,

【实例】:

th ink\Route:;group( 'demo',[ 1/分组名称

';id' => 'demo1', //路由规则' :name '=> ' demo2' ,”: is0k'=> ' demo3 '

],[  I

' method'=> 'get', //路由参数' prefix'=> ' index/user/ '],[

' id'=>'\d{2,4}', //变量规则'name'=>' [a-ZA-Z]+',' isOk'=>'0|1']);

别名路由

一、快速注册同一控制器下所有操作方法(不支持变量规则)1、动态方法:Route:alias( 规则名称;模块/控制器,[路由参数]);2、静态数组: return [

_ alias__ '=>[规则名称;模块/控制器,[路由参数]]

一、入口绑定

说明:在入口文件中添加:BIND_ MODUL E系统常量//将当前访问绑定模块/控制器

define('BIND_ MODUL E',index');  //模块级define('BIND_ MODUL .E',index/demo'); //控制器级

二、入口自动绑定

说明:入口文件名与应用中的模块自动绑定

1.入口自动绑定模块设置: 'auto_ bind_ module' => true,

2.创建要需要绑定的入口文件,例如: admin.php

3.创建与入口文件对应的模块与控制器: application/admin/controller/Index.php,并创建默认index()方法

4.直接访问:域名/admin.php,就会自动执行admin模块中默认控制器中的默认方法啦

三、绑定到命名空间或者类

1、绑定当前的URL到指定命名空间

Route:bind('applindex\controller','namespace');此前,所有采用该命名空间的类,都可以直接访问2、绑定当前的URL到类

Route::bind('applindex\controller\Demo'class');此前,所有Demo类中的方法,可以直接访问

特别注意:这种绑定形式会直接跳过模块配置文件和公共文件。

动态绑定

语法: Route::bind(模块[控制器][/操作])1、绑定当前的URL到模块Route::bind(模块');

2、绑定当前的URL到模块下面的控制器Route::bind('模块/控制器);

3、绑定当前的JRL到模块下面的控制器中的指定操作Route::bind(模块/控制器/操作');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值