tp5的路由原理和定义是什么?怎样使用?
Admin 2021-05-14 群英技术资讯 465 次浏览
tp5框架的路由原理是什么?很多新手对于路由不是很清楚,下面小编就大家通俗化的介绍一下,对tp5框架的路由原理和用法感兴趣的朋友可以看看这篇,下面就跟随小编一起来看看吧。
概括的说:路由就是网络请求的url与thinkphp应用层的逻辑处理地址的对应关系。通俗的说:路由就是把url的请求优雅的对应到你想要执行的操作方法。
路由其实就是把真实的url地址隐藏起来,使用访问地址来访问应用(网站或OA等)。通常这样定义:“访问地址”=》“真实地址”,这代表了一种映射关系。就好比用“1”代表去肯德基吃饭,用“0”代表去麦当劳吃饭,你预先告知过同事这个规则的话,只需要发送“1”或“0”给同事,同事就能理解要去哪里吃饭,一个道理。
路由的规则是thinkphp规定好的,比如TP的访问规则是:根目录/模块/控制器/方法,那么我们只需要定义一下映射关系“reg”=》“index/user/reg”,此时只需要再浏览器输入“域名/reg”就能访问“index模块/user/控制器/reg方法”这个地址了。
这样的优点:
1、没有处理过的url路径都是由 ...模块/控制器/方法/参数 构成,如果不加以“掩饰”的话,会被别人看清内部结构,不够安全。
2、可以让url地址更加简洁、优雅、美观。
通常是在应用的路由配置文件application/route.php进行注册。
admin/Admin/test方法:
public function test() { echo 'i am test <br>'; print_r(input()); }
示例如下(注意接收的参数):
示例二:
关于定义路由后,url的生成:url()方法里,url('index/blog/read','id=5&name=thinkphp');
模块、控制器要写全,不然会出错。例如:
Route::group('show', [ 'page/:id' => ['index/Page/show'], 'cate/:id' => ['index/Cate/show'], ], ['method' => 'get'], ['id' => '\d+']);
<a href="{:url('Page/show',['id'=>$cate['id']])}" rel="external nofollow" >
Href生成=》http://cms.com/index/page/show/id/65.html
动态注册:
Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)'); 或者简化方法: Route:: get(路由规则, 路由地址, 路由参数, 变量规则)
批量注册:
Route::rule([ '路由规则1'=>'路由地址和参数', '路由规则2'=>['路由地址和参数','路由参数(数组)','变量规则(数组)'] ... ],'','请求类型','匹配参数(数组)','变量规则');
注意:
混合模式下,注册路由后,原来的访问地址会自动失效~
每个参数中以“:”开头的参数都表示动态变量,并且会自动绑定到操作方法的对应参数。
注册多个路由规则后,系统会依次遍历注册过的满足请求类型的路由规则,一旦匹配到正确的路由规则后则开始调用控制器的操作方法,后续规则就不再检测。
路由绑定
入口文件绑定模块后,再定义路由规则,就不需要加模块名称了。
// [ 应用入口文件 ] //绑定admin模块 define('BIND_MODULE', 'admin');
// 给登录url定义路由 Route::rule('login', 'Login/index');
注意: define(‘BIND_MODULE', ‘index/index');绑定到控制器时,控制器名称index要小写,大写会post不成功。。。
关于路由到动态的模块、控制器或者操作
'show/:action/:id' => ['index/:action/show', ['method' => 'get'], ['id' => '\d+', 'action' => '\w+']],
这两个都能访问成功??wtf?why?
http://cms.com/show/page/69 http://cms.com/index/page/show/id/69.html
明白一点了,不能这样写,可选参数只能放到路由规则的最后,如果在中间使用了可选参数的话,后面的变量都会变成可选参数。
路由别名
似乎使用路由别名后,原pathinfo并不会失效~
现在大家对于tp5框架的路由原理和用法应该都清楚了,文本代码具有一定的借鉴价值,供大家参考学习,希望对大家有帮助,更多tp5框架的路由内容可以关注其他文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
php如何实现数据库的备份和恢复?很多新手对此不是很了解,因此下面给大家分享一下php数据库的备份与恢复,有这方面学习的需求的朋友可以看一下,希望对大家学习有帮助。
今天小编就为大家分享一篇在laravel框架中实现封装公共方法全局调用,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
对于全部脚本而言,PHP提供了大量的预定义变量。这些变量将所有的外部变量表示成内建环境变量,并且将错误信息表示成返回头。超全局变量 —超全局变量是在全部...
众所周知,作为一名phper,对php有限的功能感到尴尬,比如:调用ffmpeg视频处理工具。没有专门的扩展来操作的,什么?利用php system函数调用?对于开源的php脚本,这太不安全了!这个时候作为深资的phper会考虑开发php扩展,在扩展中实现对ffmpeg的操作。
在前文中介绍的方法有些麻烦,因为必须要加载很多的文件。本文介绍的方法简单了很多,只需要加载两个文件即可。需要的可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008