视图
视图(View)的创建规则
MiniFramework 中的规则约定视图文件需要存放在应用的 View 目录中,每个控制器对应一个视图目录,目录中每个动作方法对应一个视图文件,例如:
|--- App/ 应用目录
|
|--- Controller/ 控制器目录
| |--- Index.php 名为 Index 的控制器文件
| |--- Info.php 名为 Info 的控制器文件
|
|--- View/ 视图目录
|--- index/ 控制器 index 的视图目录
| |--- index.php 动作 index 对应的视图文件
| |--- show.php 动作 show 对应的视图文件
|
|--- info/ 控制器 info 的视图目录
|--- index.php 动作 index 对应的视图文件
|--- show.php 动作 show 对应的视图文件
上边的目录结构示意了当应用中有两个控制器分别为 Index 和 Info 时,且每个控制器中均包含有 index() 和 show() 两个动作方法时,视图目录中的结构。
控制器动作向视图传值(assign)
在控制器的动作方法中,可以通过 $this->view->assign()
方法将需要在视图中显示的数据进行传递,示例代码如下:
控制器代码:
namespace App\Controller;
use Mini\Base\Action;
class Index extends Action
{
function indexAction()
{
// 创建一个变量
$text = 'Hello World!';
// 向 View 传值
$this->view->assign('info', $text);
// 渲染并显示 View
$this->view->display();
}
}
视图代码:
<p>{$info}</p>
从上边的代码可以看出,在控制器中通过 $this->view->assign('info', $text);
向视图传入了一个名为 info 的变量,其值来自于变量 $text
,并通过在控制器中执行 $this->view->display();
来让视图进行渲染,渲染结果输出给浏览器显示。在视图代码中,通过花括号{}来使用变量。上边的代码执行结果会在浏览器中显示“Hello World!”字样。
提示:MiniFramework 在 2.8.0 版本中加入了一个简单的模板引擎,开发者可通过特定的标记符号,在 View 和 Layout 中预定义变量输出等模板标记。