#### Template
~~~
// 構造函數
$template = new Template(array $config = []);
/**
* 字符串替換 避免正則混淆
* @access private
* @param string $str
* @return string
*/
$this->stripPreg($str);
/**
* 模板變量賦值
* @access public
* @param mixed $name
* @param mixed $value
* @return void
*/
$template->assign($name, $value = '');
/**
* 模板引擎參數賦值
* @access public
* @param mixed $name
* @param mixed $value
*/
$template->__set($name, $value);
/**
* 模板引擎配置項
* @access public
* @param array|string $config
* @return void|array
*/
$template->config($config);
/**
* 模板變量獲取
* @access public
* @param string $name 變量名
* @return mixed
*/
$template->get($name = '');
/**
* 渲染模板文件
* @access public
* @param string $template 模板文件
* @param array $vars 模板變量
* @param array $config 模板參數
* @return void
*/
$template->fetch($template, $vars = [], $config = []);
/**
* 渲染模板內容
* @access public
* @param string $content 模板內容
* @param array $vars 模板變量
* @param array $config 模板參數
* @return void
*/
$template->display($content, $vars = [], $config = []);
/**
* 設置布局
* @access public
* @param mixed $name 布局模板名稱 false 則關閉布局
* @param string $replace 布局模板內容替換標識
* @return object
*/
$template->layout($name, $replace = '');
/**
* 檢查編譯緩存是否有效
* 如果無效則需要重新編譯
* @access private
* @param string $cacheFile 緩存文件名
* @return boolean
*/
$this->checkCache($cacheFile);
/**
* 檢查編譯緩存是否存在
* @access public
* @param string $cacheId 緩存的id
* @return boolean
*/
$template->isCache($cacheId);
/**
* 編譯模板文件內容
* @access private
* @param string $content 模板內容
* @param string $cacheFile 緩存文件名
* @return void
*/
$this->compiler(&$content, $cacheFile);
/**
* 模板解析入口
* 支持普通標簽和TagLib解析 支持自定義標簽庫
* @access public
* @param string $content 要解析的模板內容
* @return void
*/
$template->parse(&$content);
/**
* 檢查PHP語法
* @access private
* @param string $content 要解析的模板內容
* @return void
* @throws \think\Exception
*/
$this->parsePhp(&$content);
/**
* 解析模板中的布局標簽
* @access private
* @param string $content 要解析的模板內容
* @return void
*/
$this->parseLayout(&$content);
/**
* 解析模板中的include標簽
* @access private
* @param string $content 要解析的模板內容
* @return void
*/
$this->parseInclude(&$content);
/**
* 解析模板中的extend標簽
* @access private
* @param string $content 要解析的模板內容
* @return void
*/
$this->parseExtend(&$content);
/**
* 替換頁面中的literal標簽
* @access private
* @param string $content 模板內容
* @param boolean $restore 是否為還原
* @return void
*/
$this->parseLiteral(&$content, $restore = false);
/**
* 獲取模板中的block標簽
* @access private
* @param string $content 模板內容
* @param boolean $sort 是否排序
* @return array
*/
$this->parseBlock(&$content, $sort = false);
/**
* 搜索模板頁面中包含的TagLib庫
* 并返回列表
* @access private
* @param string $content 模板內容
* @return array|null
*/
$this->getIncludeTagLib(&$content);
/**
* TagLib庫解析
* @access public
* @param string $tagLib 要解析的標簽庫
* @param string $content 要解析的模板內容
* @param boolean $hide 是否隱藏標簽庫前綴
* @return void
*/
$template->parseTagLib($tagLib, &$content, $hide = false);
/**
* 分析標簽屬性
* @access public
* @param string $str 屬性字符串
* @param string $name 不為空時返回指定的屬性名
* @return array
*/
$template->parseAttr($str, $name = null);
/**
* 模板標簽解析
* 格式: {TagName:args [|content] }
* @access private
* @param string $content 要解析的模板內容
* @return void
*/
$this->parseTag(&$content);
/**
* 模板變量解析,支持使用函數
* 格式: {$varname|function1|function2=arg1,arg2}
* @access public
* @param string $varStr 變量數據
* @return void
*/
$template->parseVar(&$varStr);
/**
* 對模板中使用了函數的變量進行解析
* 格式 {$varname|function1|function2=arg1,arg2}
* @access public
* @param string $varStr 變量字符串
* @return void
*/
$template->parseVarFunction(&$varStr);
/**
* 特殊模板變量解析
* 格式 以 $Think. 打頭的變量屬于特殊模板變量
* @access public
* @param array $vars 變量數組
* @return string
*/
$template->parseThinkVar($vars);
/**
* 分析加載的模板文件并讀取內容 支持多個模板文件讀取
* @access private
* @param string $templateName 模板文件名
* @return string
*/
$this->parseTemplateName($templateName);
/**
* 解析模板文件名
* @access private
* @param string $template 文件名
* @return string|false
*/
$this->parseTemplateFile($template);
/**
* 按標簽生成正則
* @access private
* @param string $tagName 標簽名
* @return string
*/
$this->getRegex($tagName);
~~~