thinkphp5入门【三】pathinfo模式的url访问
tp5访问入口文件的时候是,访问public目录下的index.php,那么她真正访问的url到底是什么?如何去访问其他页面,实际上她默认使用的PATH_INFO模式进行访问。
PATHINFO模式
想想在我使用tp3.2的时候,也是利用的path_info去访问,再往前刚接触的php的时候,我们写的php脚本访问的时候就是按照文件位置去访问的对应url,例如http://localhost/test/a/b/c.php,确实这种就是普通的路由访问,直接按照url去找你对应文件夹下的php然后执行。
那么pathinfo的模式, 其url的路径实际并不存在,apache或者nginx等通过一定的手段将不存在的路径
保存在$_SERVER['PATH_INFO']环境变量里面,举个例子http://localhost/path_info.php/index/index/index.html?id=1;
那么在path_info.php里面我就只写了一个例子
<?php
echo $_SERVER['PATH_INFO'];
?>
会输出
/index/index/index.html
这一段就是pathinfo模式去,去访问不存在的路径,会存在一个环境变量$_SERVER['PATH_INFO'],后面的id=1作为$_GET['id']传入页面。
TP5默认path_info模式
好吧,转到正题上,那么tp5的url是怎么弄的?
实际上tp就是根据PATHINFO,从里面提取到模块名,控制器名,操作方法名,将剩余的部分转换成为$_GET。
下面简单来看一下这几个部分
入口文件index.php
默认为于public/index.php,定义应用目录,加载框架引导目录
模块
位置:(D:\wamp\www\Tp5\application\) (我用的wampServer环境,位置可能和你们不一样,仅作参考)
默认的index模块就是 index目录
命名规范:目录使用小写+可以使用下划线 设置命名空间会用到。
控制器
位置:(D:\wamp\www\Tp5\application\index\controller\)
默认的控制器文件时Index.php
命名规范:文件名采用大驼峰法,首字母大写,后缀名以.php结尾,(Tp3.2的时候,我们的控制器时加了.class.php作为后缀,这里我们可以省去.class了)
控制器文件名要与类的文件名保持一致
命名空间与类文件名所在的路径一致
操作方法
位置:控制器类里面的方法
默认的时index方法
命名规范:小驼峰法
URL大小写问题
最后,再看一下这个让人迷惑的地方,很多时候报错就是你的url访问找不到你的控制器类
tp5默认url不区分大小写,url里面的模块/控制器/操作名会自动转化大小写,控制器在最后调用的时候会转化为驼峰法处理
下面我关闭url转化控制器和操作名,来访问
顺道看一下日志吧
位置:(D:\wamp\www\Tp5\runtime\log\)
日志在项目开发的时候还是很重要的,看看日志也能帮助理解
小结
[1]thinkphp5默认使用pathinfo模式来解析url进行访问
[2]模块目录小写,控制器名和类名一致采用大驼峰,后缀是.php,操作方法采用小驼峰书写
[3]我建议关闭“是否自动转换URL中的控制器和操作名”,也就是config.php配置文件里面url_convert设置为false,大小写严格一些,方便以后上线在linux运行
[4]永远记住,日志很重要
thinkphp5入门【三】pathinfo模式的url访问相关推荐
- php伪静态url运用,再谈 THINKPHP 伪静态url(URL访问模式)的设置
THINKPHP 有如下URL访问模式可以定义:默认是 PATHINFO模式 // URL 模式定义 const URL_COMMON = 0; //普通模式 const URL_PATHINFO = ...
- nginx配置pathinfo模式,解决访问404
nginx配置pathinfo模式,解决访问404 什么是pathinfo,pathinfo是PHP的一个函数 pathinfo() 函数以数组或字符串的形式返回关于文件路径的信息. 返回的数组元素如 ...
- 智能硬件(2)---手机访问智能硬件的三种模式
手机访问智能硬件的三种模式 手机访问智能硬件的三种基本模式:B/S模式.C/S模式.云模式. http://blog.csdn.net/zoomdy/article/details/51594977 ...
- LNMP一键安装包+Thinkphp搭建基于pathinfo模式的路由(可以去除url中的.php)
LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat/Fedora.Debian/Ubuntu/Raspbian/Deepin VPS或独立主机安装LNMP(Ngin ...
- Java 网络编程(三) 创建和使用URL访问网络上的资源
创建和使用URL访问网络上的资源 URL(Uniform Resource Locator)是统一资源定位符的简称,它表示Internet上某一资源的地址. 通过URL我们可以访问Internet上的 ...
- Hadoop基础(三) --- oiv、oev、通过URL访问hdfs以及FileSyatem-- Hadoop的文件系统的常用API
[oiv]offline image viwer -------------------------------------------------------------- 1.用于查看Had ...
- ThinkPHP URL模式和URL重写
现在用的版本是TP3.1.3,这两天总是遇到NotFound的错误,解析路径错误,所以认真研究了一下手册,发现问题出在URL模式上面. URL模式 一般是使用U方法来生成路径,U方法的定义规则如下(方 ...
- phpinfo查看可以解析的后缀_配置nginx,Apache支持pathinfo模式-什么是phpinfo模式
我也配置了很多次了,前面都快放弃了,最近在学习resuful框架写api,代码实现上没出现啥问题,倒是这个path_info的环境配置把我弄的比较郁闷 你一定见过类似这样的路径:http://www. ...
- apache http server 停止工作_配置nginx,Apache支持pathinfo模式-什么是phpinfo模式
我也配置了很多次了,前面都快放弃了,最近在学习resuful框架写api,代码实现上没出现啥问题,倒是这个path_info的环境配置把我弄的比较郁闷 你一定见过类似这样的路径:http://www. ...
最新文章
- vue如何使用原生js写动画效果_原生js写一个无缝轮播图插件(支持vue)
- Linux上怎样停止服务(jar包)、查看进程路径、关闭指定端口
- java安全编码指南之:死锁dead lock
- 我很喜欢玩游戏,那么我就适合做游戏程序员吗?
- LeetCode上读不懂题!看不懂测试用例的那些题(有生之年更新。。。)
- python用途适合做什么生意-PureQuant数字货币量化交易程序化交易python量化开源框架...
- 鸿蒙轻内核源码分析:虚拟内存
- java lambda 画蛇添足_什么时候使用Lambda函数?
- sharepoint 2007,sharepoint 2010网站的备份还原
- 网站访问计数器 php,用PHP生成访客计数器
- solid converter pdf解锁密码_pdf转换word文档怎么操作
- zipf定律与相似性度量
- 用户根据短信验证码注册
- Java代码利用aspose-words将word文档转换成pdf和图片格式(PNG,JPG,JPEG破解 无水印)
- 数据库分库分表之后如何查询统计?
- 学习秦始皇 五招打造无敌团队
- 目标检测入门知识以思考(写于2021.11)
- IOC容器中bean的生命周期
- 仓库建设细节及注意事项
- RStudio的用户界面
热门文章
- 可交互的地球html,[网页设计]纯CSS3实现地球自转
- ubuntu开机黑屏,左上角光标闪烁
- 这款好用的浏览器插件必须推荐给需要的人!
- uniAPP实现单页面横竖屏切换
- 计算机游戏锁怎么打开,键盘锁打不开要怎么办呢【图文教程】
- “论文”相关的基本知识(ISI 核心期刊 期刊文献论文)
- javascript 符号_JavaScript中的美元符号($)和下划线(_)
- mysql8 绿色版安装
- 同方国芯拟逾60亿投集成电路产业链公司
- [latex] latex应用