boaPHP开发手册v5.5

控制器定义

控制器位于模块的controller目录下,首先要继承基础控制器。

命名

控制器类名即文件名,也是URL中c部分、环境中con字段,除下划线(_)外不建议使用特殊字符

控制器不要以 _empty 命名,这是为空控制器保留的名称

动作

每个控制器包含若干个动作,动作是实现具体业务的代码块。定义一个 hello 动作:


namespace mod\home\controller;

use boa\controller;

class index extends controller{
	public function __construct(){
		parent::__construct();
	}

	public function hello(){
		$name = $this->name; // 访问用户变量
		$this->view->assign('title', $name); // 赋值给模板文件使用
		$this->view->html(); // 输出模板
	}
}
	

变量

对于环境var、$_POST、$_GET、$_COOKIE 4个变量中的参数,在动作中可以直接用对象运算符(->)来访问,比如本例中 $this->name 将依次从以上4个变量中取值,其等同于 $this->request->name$this->request->v('name'),如果变量与控制器类中属性名称冲突,也可以使用后面的替代方法

如果配置了自动验证,访问时会自动执行相关验证逻辑,无需显式的额外操作

具体请参见变量及自动验证等相关章节

输出

动作中业务执行完后可以调用 $this->view->html($tpl, false) 输出模板内容,html() 支持两个参数:

  • 第一个参数表示模板相对路径,可选,默认为当前动作对应的模板文件
  • 第二个参数表示输出还是返回,可选,默认为输出

返回

如上所述,html() 的第二个参数为 true 时返回内容:


return $this->view->html('home.index.test', true);
	

view类中支持返回的还有 json()、 xml()、 jsonp()等方法

详情参见 view类