HTTP控制器中,如果需要使用视图组件,则必须继承x\controller\Http
基类控制器。
SW-X中的视图文件,统一存放在/app/view
目录下,该路径可以在/config/view.php
配置文件中进行修改,需要注意路径末尾不能带/
符号。
依赖类:\x\controller\Http
方法名:display()
参数:
string $path
array $data
[]
,非必填
返回值:bool
使用示例:
namespace app\http;
// 控制器系统基类
use x\controller\Http;
class Index extends Http
{
/**
* @RequestMapping(route="/test/demo", method="get", title="我是路由定义注解")
*/
public function index() {
// 渲染视图文件
return $this->display();
// 视图文件就是:/app/view/test/demo.html
}
}
有时候当我们不需要输出视图内容,而是只获取渲染后的html
代码,那就要用到view()
方法。
依赖类:\x\controller\Http
方法名:view()
参数:
string $path
array $data
[]
,非必填
返回值:string
使用示例:
namespace app\http;
// 控制器系统基类
use x\controller\Http;
class Index extends Http
{
/**
* @RequestMapping(route="/test/demo", method="get", title="我是路由定义注解")
*/
public function index() {
// 只获得渲染后的视图内容
$html = $this->view();
// 渲染的视图文件是:/app/view/test/demo.html
}
}
路径在/config/view.php
。
return [
// 模板引擎类型 仅支持 SwooleX 支持扩展
'type' => 'SwooleX',
// 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
'auto_rule' => 1,
// 模板路径
'view_path' => APP_PATH.'view',
// 模板后缀
'view_suffix' => 'html',
// 模板文件名分隔符
'view_depr' => DIRECTORY_SEPARATOR,
// 模板引擎普通标签开始标记
'tpl_begin' => '{',
// 模板引擎普通标签结束标记
'tpl_end' => '}',
// 标签库标签开始标记
'taglib_begin' => '{',
// 标签库标签结束标记
'taglib_end' => '}',
// 布局模板开关
'layout_on' => false,
// 布局模板入口文件
'layout_name' => 'layout',
// 布局模板的内容替换标识
'layout_item' => '{__CONTENT__}',
// 分页配置参数
'paginate' => [
// 分页样式类
'type' => '\x\page\Bootstrap',
// 分页变量参数
'var_page' => 'page',
// 分页URL参数
'query' => [],
// 分页锚点参数
'fragment' => '',
],
// HTTP控制器fetch时默认的响应headers
'http_response_headers' => [
'Content-type' => 'text/html; charset=utf-8'
],
// 模板替换 - 可看做模板常量
'tpl_replace_string' => [
'__PUBLIC__' => 'http://IP:端口/静态文件地址',
]
];