PHP-TP框架中的控制器

2021年09月15日 阅读数:2
这篇文章主要向大家介绍PHP-TP框架中的控制器,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
4、TP框架中的控制器

一、控制器的后缀

打开配置文件application/config.php,有以下配置php

'controller_suffix' => false,

表示默认状况下,控制器无特殊后缀。例如 Index控制器,文件名为Index.phphtml

若是须要进行设置,能够设置为(咱们不须要这么设置)apache

'controller_suffix' => 'Controller',

表示控制器以Controller为后缀。例如Index控制器,文件名为IndexController.php架构

二、控制器的定义

(见手册–控制器–控制器定义)app

1)定义位置及命名规则框架

定义位置:application/模块目录/controller/目录下ide

命名规则:控制器名称(首字母大写) + (控制器后缀,默认没有) + .php测试

默认:Index控制器 Index.phpurl

User控制器 User.phpspa

Test控制器 Test.php

示例:

PHP-TP框架中的控制器_命名空间

2)编写控制器

①声明命名空间 namespace app\模块目录名\controller

②引入控制器基类(可选) use think\Controller; think是命名空间 Controller是基类控制器

③定义当前控制器类,继承控制器基类(可选)

示例:定义测试控制器Test.php

PHP-TP框架中的控制器_php_02

三、框架中的命名空间

命名空间自己是PHP就有的,用来防止命名冲突问题的。

TP框架中的命名空间,一般和目录挂钩。

缘由:TP中的自动加载机制,会将类的命名空间做为加载路径的一部分。

PHP-TP框架中的控制器_php_03

TP中命名空间使用:

①声明命名空间 使用namespace关键字

②引入指定的类 使用use关键字 命名空间\类名称

③彻底限定式访问 在使用类时,\完整命名空间\类名称(继承和实例化)

若是一个类没有命名空间,使用 \类名

四、url访问

(见手册–架构–URL访问)

ThinkPHP5.0框架中,默认使用PATH_INFO方式的url进行访问。

示例:http://www.tpshop.com/index.php/Index/Test/index/page/10

格式:http://域名/入口文件/模块名/控制器名称/操做方法名称/参数名/参数值

隐藏入口文件写法:http://域名/模块名/控制器名称/操做方法名称/参数名/参数值

须要对apache进行设置(手册–架构–URL访问、手册–部署–URL重写)

PHP-TP框架中的控制器_后缀_04

使用PHPStudy须要将 public目录的.htaccess文件中,index.php后面加上?

PHP-TP框架中的控制器_后缀_05

使用Apapche的重写机制隐藏入口文件后,若是在整个url后面加上.html后缀, 让整个url看起来像是访问的静态页面。这叫作“伪静态”。

五、调试模式

(见手册–错误与调试–调试模式)

默认状况下,若是代码有误(好比控制器名拼写有误),会出现如下错误:

PHP-TP框架中的控制器_命名规则_06

错误描述比较模糊,不方便进行错误调试。这种模式一般叫作“部署模式”(生产模式)。

开发阶段能够将框架设置为调试模式,便于进行错误调试:

修改 项目目录\application目录\config.php

PHP-TP框架中的控制器_命名空间_07

开启调试模式后,报错信息格式以下:

PHP-TP框架中的控制器_命名空间_08

会提示详细错误信息 和 错误位置(参考位置)。

相对于 线上环境(开发完成后的阶段),叫作 部署模式或者生产模式。