java自学教程|www.konglongmei.com

作者: 馥琳
查看: 130|回复: 0

more +社区更新Forums

more +随机图赏Gallery

[技术知识] 自学PHP的第22天---ThinkPHP中的路由、ThinkPHP目录结构

[技术知识] 自学PHP的第22天---ThinkPHP中的路由、ThinkPHP目录结构

[复制链接]
馥琳 | 显示全部楼层 发表于: 2019-12-3 02:10:05
馥琳 发表于: 2019-12-3 02:10:05 | 显示全部楼层 |阅读模式
查看: 130|回复: 0
这一切的一切都得从“Hello world”说起!!!
       有很多东西在thinkPHP的官方开发文档上其实都有讲到,我在这里只是想记录自己每天坚持学习PHP的情况,今天接触ThinkPHP的路由,路由这一块可以更好的隐藏我们网站的结构,让我们的网站更安全,这是路由带给我们的一些好处。下面来记录ThinkPHP中的路由这一块主要内容。
一、配置路由

在ThinkPHP框架中找到路由目录下的php文件,系统默认会给我们一个route.php的这个文件,当然我们也能在这个目录下创建自己的一个路由文件,系统会自动加载这个目录下的所有文件
            这个就是路由的文件

ThinkPHP的目录结构


二、配置一个简单路由规则
  1. /** *配置一个简单的路由规则  第一个参数自定义   第二个参数依次是模块/控制器/方法 * ------->路由执行是从方法开始找,接着找控制器,再是模块  若不填写:系统默认使用配置文件中所配置的默认 * 可以在配置文件app.php中配置默认的模块、控制器和方法 */Route::rule('good','index/index/index');
复制代码
这时在浏览器中只需要输入“http://域名/good” 就能找到指定的模块下的控制器中的方法,也可在后方加.html,需要在配置文件app.php中设置URL伪静态的后缀,默认为html
三、路由表达式
  1. //动态路由//id为动态获取的,也就是在good/后面随意输入都可以路由到index/index/indexRoute::rule('good/:id','index/index/index');//当然id里面的值也是可以获取的//在控制器中使用门面下的Request中的param('id')可以获取id的值Route::rule('good/[:id]','index/index/index');
  2. //路由地址 直接路由到操作方法
  3. //看起来似乎和前面的没什么不同,本质的区别是直接执行某个控制器的方法,不需要去解析模块/控制器/操作方法这些,同时不会去初始化模块
  4. Route::rule('good','@index/index/index');
复制代码
四、路由重定向

比如说重定向到百度:
  1. //重定向到百度Route::rule('baidu','https://www.baidu.com');
复制代码
五、路由请求类型

请求类型通常有:post、get、delete、put、等请求,路由请求类型可以指定某些请求来请求某个模块下的某个控制器中的某个方法
  1. //post请求默认模块/默认控制器/默认方法Route::rule('good','','post');Route::post('good','');//get、delete等请求都与上类似//设置多个请求类型Route::rule('good','','post|get|delete|put');
复制代码
六、路由参数

下表从官方文档拿下来的一个参数、说明和对应的方法名
参数说明方法名method请求类型检测,支持多个请求类型methodextURL后缀检测,支持匹配多个后缀extdeny_extURL禁止后缀检测,支持匹配多个后缀denyExthttps检测是否https请求httpsdomain域名检测domainbefore前置行为(检测)beforeafter后置行为(执行)aftermerge_extra_vars合并额外参数mergeExtraVarscomplete_match是否完整匹配路由completeMatchmodel绑定模型modelcache请求缓存cacheparam_depr路由参数分隔符deprajaxAjax检测ajaxpjaxPjax检测pjaxresponse绑定response_send行为responsevalidate绑定验证器类进行数据验证validateheader设置Response的header信息headerappend追加额外的参数(5.1.5+)appendmiddleware注册路由中间件(5.1.6+)middlewaremerge_rule_regex合并路由规则(V5.1.6+)mergeRuleRegexfilter请求变量过滤(V5.1.16+)filter这里举个路由参数的例子:
  1. Route::rule('good','')    ->ext('html')    ->https(false);//ext()设置伪静态后缀//https()是否验证https请求
复制代码
七、闭包支持

举个hello world的栗子,这一切的一切都得从“Hello world”说起
  1. //闭包支持Route::rule('good',function (){   return "Hello world";});
复制代码
八、URL生成

配置好路由之后给这个路由一个名字,然后在其它的地方调用助手函数url()或者使用门面下的build方法可获取对应的url地址
  1. Route::rule('good','')->name('new_good');//通过助手函数的方式获取url //url('new_good');//通过门面下的Url中的build方法//Url::build('new_good');
复制代码


鲁班 Java架构师VIP课程一期共89G视频教程 luban it教程下载:http://www.77cxw.com/download/78
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网站地图|java自学教程|www.konglongmei.com

GMT+8, 2020-7-13 10:02 , Processed in 0.242757 second(s), 47 queries .

快速回复 返回顶部 返回列表