视图
在 IMI 中可以使用视图来决定响应内容和格式,包括JSON、XML、模版渲染在内的 IMI 认为都是视图,视图可以直接通过注解来设置。
如上代码所示,@View
注解可以写在类和方法的注释中。
/**
* @Action
* @View(renderType="json")
*/
public function index()
{
// 数组
$jsonData = [
'id' => 1,
'name' => 'imi',
];
// $jsonData = new stdClass;
// $jsonData->name = 'imi';
return $jsonData;
}
return [
'beans' => [
// json_encode 的参数值配置
'options' => 0,
'depth' => 512,
]
]
];
return [
'beans' => [
'HtmlView' => [
'templatePath' => '模版文件根路径',
// 支持的模版文件扩展名,优先级按先后顺序
// 'fileSuffixs' => [
'tpl',
'php'
],
]
]
];
控制器-动作
* @Action
* @View("a/b")
*/
public function index()
{
return [
'content' => 'hello imi',
];
}
模版文件
模版文件根路径/a/b.html
运行结果:hello imi
在控制器-动作中,除了返回数据,你还可以直接返回$this->response
,如:
return $this->response->write('hello world');
你还可以直接返回的注解类实例:
return new \Imi\Server\View\Annotation\View([
'template' => 'index',
'data' => [
'name' => 'imi',