控制器

ThinkPHP 3.2.2

控制器

我们可以在自动生成的Application/Home/Controller目录下面找到一个 IndexController.class.php 文件,这就是默认的Index控制器文件。

控制器类的命名方式是:控制器名(驼峰法,首字母大写)+Controller

控制器文件的命名方式是:类名+class.php(类文件后缀)

默认的欢迎页面其实就是访问的Home模块下面的Index控制器类的index操作方法 我们修改默认的index操作方法如下:

namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        echo 'hello,world!';
    }
}

再次运行应用入口文件,浏览器会显示:hello,world!

我们再来看下控制器类,IndexController控制器类的开头是命名空间定义:

namespace Home\Controller;

这是系统的规范要求,表示当前类是Home模块下的控制器类,命名空间和实际的控制器文件所在的路径是一致的,也就是说: Home\Controller\IndexController类 对应的控制器文件位于应用目录下面的 Home/Controller/IndexController.class.php,如果你改变了当前的模块名,那么这个控制器类的命名空间也需要随之修改。

注意:命名空间定义必须写在所有的PHP代码之前声明,否则会出错

use Think\Controller;

表示引入 Think\Controller 命名空间便于直接使用。 所以,

use Think\Controller;
class IndexController extends Controller

等同于使用:

class IndexController extends \Think\Controller

对于3.1的用户而言,如果你习惯了使用Action定义控制器的话,可以这样定义:

namespace Home\Action;
use Think\Action;
class IndexAction extends Action{
}

然后,在配置文件中,设置:

'DEFAULT_C_LAYER'=>'Action'

上面的设置方式通常可以用于原有3.1项目的升级。