V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。
StartMVC的视图使用原生的PHP文件和PHP语法,并没有采用任何模板引擎,主要考虑到模板标签语法还要解析成php语法,既牺牲了性能又增加了学习成本,php本身就是一种天然的模板引挚。
使用视图
视图文件默认是以.php结尾的,文件名为:控制器_方法.php
文件位置在 /模型/view下
在控制中,引入视图的方式为 $this->display()
namespace app\home\controller;
use Startmvc\lib\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\lib\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
<? foreach($users as $v){?>
<p>姓名:<?=$v['name']?>,年龄:<?=$v['age']?></p>
<? }?>
/*
姓名:小明,年龄:21
姓名:小红,年龄:20
*/
对于这一节,更多详细信息,请参考 控制器数据输出 https://startmvc.com/doc/detail/7.html
模板标签
Startmvc支持短标签模式,比如
<?php echo $a;?>
可以简化成 <?=$a?>
<?php echo $a=0;?>
可以简化成 <?$a=0?>
更多标签支持见 模板引挚 https://startmvc.com/doc/detail/38.html