打开配置文件application/config.php,有如下配置
'controller_suffix' => false,
表示默认情况下,控制器无特殊后缀。例如 Index控制器,文件名为Index.php
如果需要进行设置,可以设置为(我们不需要这么设置)
'controller_suffix' => 'Controller',
表示控制器以Controller为后缀。例如Index控制器,文件名为IndexController.php
(见手册–控制器–控制器定义)
1)定义位置及命名规则
定义位置:application/模块目录/controller/目录下
命名规则:控制器名称(首字母大写) + (控制器后缀,默认没有) + .php
默认:Index控制器 Index.php
User控制器 User.php
Test控制器 Test.php
示例:
2)编写控制器
①声明命名空间 namespace app\模块目录名\controller
②引入控制器基类(可选) use think\Controller; think是命名空间 Controller是基类控制器
③定义当前控制器类,继承控制器基类(可选)
示例:定义测试控制器Test.php
命名空间本身是PHP就有的,用来防止命名冲突问题的。
TP框架中的命名空间,通常和目录挂钩。
原因:TP中的自动加载机制,会将类的命名空间作为加载路径的一部分。
TP中命名空间使用:
①声明命名空间 使用namespace关键字
②引入指定的类 使用use关键字 命名空间\类名称
③完全限定式访问 在使用类时,\完整命名空间\类名称(继承和实例化)
如果一个类没有命名空间,使用 \类名
(见手册–架构–URL访问)
ThinkPHP5.0框架中,默认使用PATH_INFO方式的url进行访问。
示例:http://www.tpshop.com/index.php/Index/Test/index/page/10
格式:http://域名/入口文件/模块名/控制器名称/操作方法名称/参数名/参数值
隐藏入口文件写法:http://域名/模块名/控制器名称/操作方法名称/参数名/参数值
需要对apache进行设置(手册–架构–URL访问、手册–部署–URL重写)
使用PHPStudy需要将 public目录的.htaccess文件中,index.php后面加上?
使用Apapche的重写机制隐藏入口文件后,如果在整个url后面加上.html后缀, 让整个url看起来像是访问的静态页面。这叫做“伪静态”。
(见手册–错误与调试–调试模式)
默认情况下,如果代码有误(比如控制器名拼写有误),会出现以下错误:
错误描述比较模糊,不方便进行错误调试。这种模式通常叫做“部署模式”(生产模式)。
开发阶段可以将框架设置为调试模式,便于进行错误调试:
修改 项目目录\application目录\config.php
开启调试模式后,报错信息格式如下:
会提示详细错误信息 和 错误位置(参考位置)。
相对于 线上环境(开发完成后的阶段),叫做 部署模式或者生产模式。