[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);
}
}
~~~
- 序言
- 更新日志
- 安裝
- 規范
- 常量
- 配置
- 自動加載
- MVC
- 模塊
- 控制器
- 模型
- 視圖
- php原生模板
- 模板引擎
- 變量輸出
- 模板注釋
- 模板繼承
- 模板引用
- 流程控制
- 原樣輸出
- 服務組件
- Hook組件
- Request組件
- Router組件
- Cookie組件
- Encrypter組件
- Dispatch組件
- Response組件
- View組件
- Session組件
- Helper組件
- 數據分頁
- 數據驗證
- Logger組件
- Cache組件
- Redis組件
- Connection組件
- 執行sql語句
- 查詢生成器
- 查詢方法詳解
- Schema
- Captcha組件
- CLI
- CLI工具
- 事件
- 類事件
- 實例事件
- 全局事件
- 助手函數
- 擴展
- 異常
- 部署
- Apache
- Nginx
- IIS
- 虛擬主機