企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ### 组件说明 > View组件用于渲染视图模板。 ### 配置选项 | 配置名 | 参数类型 | 可选 | 默认值 | 说明 | | --- | --- | --- | --- | --- | | class | string | 是 | lying\view\View | 不可更改 | | suffix | string | 是 | html | 模板文件的后缀名,如果此项设置为php,表示用php模板,否则用内置模板引擎 | | cache | string | 是 | template | 模板缓存组件ID | ### 示例配置 ~~~php //缓存组件(用于模板缓存) 'tplCache' => [ 'class' => 'lying\cache\FileCache', //必须是文件缓存 'dir' => DIR_RUNTIME . DS . 'compile', 'gc' => 80, 'suffix' => 'php', 'serialize' => false, ], //视图设置 'view' => [ 'class' => 'lying\db\Cookie', //view为核心组件,所以此项可不写 'suffix' => 'html', 'cache' => 'tplCache', //此参数一般情况下不比配置,使用默认的即可 ], ~~~ ### 调用方式 ~~~php \Lying::$maker->get('view'); \Lying::$maker->view(); \Lying::$maker->view; ~~~ ### 方法列表 ~~~php /** * 渲染模板 * @param string $view 模板 * @param array $params 模板参数 * @param Controller $context 上下文 * @return string 返回渲染后的模板 */ public function render($view, $params, Controller $context = null); ~~~ * * * * * ~~~php /** * 渲染模板文件 * @param string $file 模板文件绝对路径 * @param array $params 模板参数 * @param Controller $context 上下文 * @return string 返回渲染后的模板 */ public function renderFile($file, $params, Controller $context = null); ~~~ ***** ~~~php /** * 渲染php模板 * @param string $file 模板文件 * @param array $params 模板参数 * @return string 返回渲染结果 * @throws \Throwable|\Exception */ public function renderPhp($file, $params); ~~~ ***** ~~~ /** * 解析视图路径 * @param string $view 解析的视图 * @param Controller $context 上下文 * @return string 返回视图文件的绝对路径 * @throws \Exception 文件不存在抛出异常 */ public function resovePath($view, Controller $context = null); ~~~ ### 使用示例 ~~~php <?php namespace module\index\controller; use lying\service\Controller; /** * Class IndexCtrl * @package module\index\controller */ class IndexCtrl extends Controller { /** * 首页 * @return string */ public function index() { //更多的输出方式 $view = $this->maker->view; //输出渲染后的页面 //return $view->render('/www/project/tpl.html', ['name'=>'lying']); //return $view->render('index', ['name'=>'lying'], $this); //带有context //return $view->renderFile('/www/project/tpl.html', ['name'=>'lying']); //根据context返回视图文件的绝对路径,如果没有context,则返回带后缀的文件名 echo $view->resovePath('abc', $this); } } ~~~