视图

视图与模版

视图与应用

使用

视图有2种使用方式

1 隐式调用

Standard Inline等默认支持视图的应用模式下,如启用了视图(enable_viewtrue),应用控制器的return数据会传递给默认的视图文件(不同应用模式下调用默认的视图文件的规则不一样,具体请参考各应用模式章节),然后输出html。

隐式调用下,在控制器不用显示调用任何view方法,正常return数据即可。

2 显式调用

调用view方法,指定视图文件和数据

// 使用view()辅助函数
view('/home/index', $vars);
// 使用response
Response::view('/home/index', $vars);
// 使用视图魔术方法,下面会说明
View::success();
// 输出错误页面
View::error($code, $message)

注意在Standard Inline等应用模式下也可以显式调用view方法,因为有时候可能默认调用的视图文件并不是想要的。

配置

[
// 视图文件目录
'dir' => APP_DIR.'view/',
// (可选配置)视图主题
//'theme' => '';
/* (可选配置)
* 自定义的错误页面文件路径
* 如未设置,默认使用framework\extend\view\Error类方法
*/
'error' => [
//'404' => '/error/404',
//'500' => '/error/500',
],
// (可选配置)视图魔术方法的页面文件路径与默认参数
'methods' => [
//'success' => ['/method/success', 'message' => '操作成功', 'backto' => '/'],
//'failure' => ['/method/failure', 'message' => '操作失败', 'backto' => '/'],
],
/* (可选配置)
* 启用视图模版
* 此配置只要非null,即使是空数组也会启用模版(使用默认设置)
*/
'template' => [
/* (可选配置)
* 模版文件文件目录
* 如未设置,默认使用视图文件目录
*/
'dir' => APP_DIR.'storage/view/',
// (可选配置)模版文件后缀
'ext' => '.htm', //默认值
]
];

错误页面

用户可以制作更美观的404 500等错误提示页面来替代默认的页面

error配置指定error code调用的页面文件路径

视图魔术方法

视图魔术方法提供调用View方法的方式来输出视图。

调用View::success() 相当于调用view('/method/success', ['message' => '操作成功', 'backto' => '/'])

对一些常用的提示页面使用视图魔术方法会非常方便,当视图文件和默认参数需要改变时,修改配置文件即可,不用修改业务代码。

视图模版

在启用视图模版配置的情况下,每次应用请求都会检查视图文件和模版文件的更新时间,当视图文件不存在或比模版文件旧时,会使用模版编译处理器将模版文件编译成视图文件保存到视图文件目录。

模版编译处理器生成的视图文件不依赖模版类的任何方法,所以如果用户对性能比较敏感,可以在测试环境将模版文件先编译好,然后把生成的视图文件传到生产服务器,生产服务器不启用视图模版(可以避免由检查文件更新时间产生的多次文件IO)。