V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。
StartMVC的视图使用原生的PHP文件和PHP语法,并没有采用任何模板引擎,主要考虑到模板标签语法还要解析成php语法,既牺牲了性能又增加了学习成本,php本身就是一种天然的模板引挚。
使用视图
视图文件默认是以.php结尾的,文件名为:控制器_方法.php
默认默认文件位置在 /模型/view下,有时需要多风格模板,可以指定二级目录放置模板文件,需要在config/common.php中设定, 进行切换不同的模板。
'theme' => '', //指定模板子目录,比如default,方便多风格使用,为空时模板文件在view下
在控制中,引入视图的方式为 $this->display()
namespace app\home\controller;
use startmvc\core\Controller;
class IndexController extends Controller {
function indexAction(){
$this->display(); //输出到home模块下的View/Index_index.php
$this->display('view'); //输出到Home模块下的View/view.php
$this->display(['Admin', 'public/view']); //输出到Admin模块下的View/public/view.php
}
}
变量输出
在$this->display()中,可以传入变量、数组、对象。视图中会直接解析为变量。
//控制器 app/home/IndexController.php
namespace app\home\controller;
use startmvc\core\Controller;
class IndexController extends Controller {
function indexAction(){
$data['users'] = [
['name' => '小明', 'age' => 21],
['name' => '小红', 'age' => 20]
];
$this->assign($data);
$this->display();
}
}
//视图文件 app/home/view/index_index.php
姓名:,年龄:
/*
姓名:小明,年龄:21
姓名:小红,年龄:20
*/
对于这一节,更多详细信息,请参考 控制器数据输出 https://startmvc.com/doc/detail/7.html
模板标签
Startmvc支持短标签模式,比如
可以简化成
可以简化成
更多标签支持见 模板引挚 https://startmvc.com/doc/detail/38.html