控制器简介
控制器位于每个模块的“Controller”目录下,并继承自“Library\Controller”类型。
控制器的命名空间为“App\模块名称(首字母大写)\Controller“,例如home模块下的控制器命名空间为”App\Home\Controller”。
一个完整的控制器代码如下所示:
<?php
namespace App\Home\Controller;
use Library\Controller;
use Library\Model;
use Library\Request;
use Library\Response;
class Index extends Controller{
private $request;
private $response;
public function __construct(Request $request,Response $response){
$this->request=$request;
$this->response=$response;
}
/**
* 对外公开方法,返回字符串
* @param string $name 为路由参数注入
* @return 返回字符串到用户浏览器
*/
public function hello($name='Guest'){
return 'Hello!'.$name.', welcome to visit!';
}
/**
* 对外公开方法,返回json
* @param string $name 可以为路由参数注入
* @param int $age 可以为路由参数注入
* @return 返回json到用户浏览器
*/
public function info($name='Guest',$age=18){
return ['name'=>'name','age'=>$age];
}
/**
* 对外公开方法,返回渲染后的视图
* @param Library\Model $user为路由参数传入并系统处理后的用户模型对象
* @return 返回渲染后的视图对象到浏览器
*/
public function profile(Model $user){
$this->assign('user',$user);
$this->display();
}
/**
* 内部模板标签调用方法,渲染后的子视图嵌入到主视图中
* @param int $id 由模板标签参数传入
*/
public function _show($id){
$this->assign('id',$id);
$this->display();
}
}
- 上一条
- 下一条