mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 07:12:47 +08:00
模版引擎改进
This commit is contained in:
@@ -100,6 +100,10 @@ class Template {
|
|||||||
$this->config[$name] = $value;
|
$this->config[$name] = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function config($config){
|
||||||
|
$this->config = array_merge($this->config,$config);
|
||||||
|
}
|
||||||
|
|
||||||
public function get($name){
|
public function get($name){
|
||||||
return $this->tVar[$name];
|
return $this->tVar[$name];
|
||||||
}
|
}
|
||||||
@@ -109,10 +113,16 @@ class Template {
|
|||||||
* @access public
|
* @access public
|
||||||
* @param string $template 模板文件
|
* @param string $template 模板文件
|
||||||
* @param array $vars 模板变量
|
* @param array $vars 模板变量
|
||||||
* @param string $cacheId 模板缓存标识
|
* @param array $config 模板参数
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function display($template,$vars=[],$cacheId='') {
|
public function display($template,$vars=[],$config=[]) {
|
||||||
|
if($vars){
|
||||||
|
$this->tVar = $vars;
|
||||||
|
}
|
||||||
|
if($config){
|
||||||
|
$this->config($config);
|
||||||
|
}
|
||||||
$template = $this->parseTemplateFile($template);
|
$template = $this->parseTemplateFile($template);
|
||||||
$cacheFile = $this->config['cache_path'].$this->config['cache_prefix'].md5($template).$this->config['cache_suffix'];
|
$cacheFile = $this->config['cache_path'].$this->config['cache_prefix'].md5($template).$this->config['cache_suffix'];
|
||||||
if(!$this->checkCache($template,$cacheFile)) { // 缓存无效
|
if(!$this->checkCache($template,$cacheFile)) { // 缓存无效
|
||||||
@@ -123,12 +133,12 @@ class Template {
|
|||||||
ob_start();
|
ob_start();
|
||||||
ob_implicit_flush(0);
|
ob_implicit_flush(0);
|
||||||
// 读取编译存储
|
// 读取编译存储
|
||||||
$this->storage->read($cacheFile,$vars?$vars:$this->tVar);
|
$this->storage->read($cacheFile,$this->tVar);
|
||||||
// 获取并清空缓存
|
// 获取并清空缓存
|
||||||
$content = ob_get_clean();
|
$content = ob_get_clean();
|
||||||
if($cacheId && $this->config['display_cache']) {
|
if($this->config['cache_id'] && $this->config['display_cache']) {
|
||||||
// 缓存页面输出
|
// 缓存页面输出
|
||||||
Cache::set($cacheId,$content,$this->config['cache_time']);
|
Cache::set($this->config['cache_id'],$content,$this->config['cache_time']);
|
||||||
}
|
}
|
||||||
echo $content;
|
echo $content;
|
||||||
}
|
}
|
||||||
@@ -141,13 +151,16 @@ class Template {
|
|||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function fetch($content,$vars=[]) {
|
public function fetch($content,$vars=[]) {
|
||||||
|
if($vars){
|
||||||
|
$this->tVar = $vars;
|
||||||
|
}
|
||||||
$cacheFile = $this->config['cache_path'].$this->config['cache_prefix'].md5($content).$this->config['cache_suffix'];
|
$cacheFile = $this->config['cache_path'].$this->config['cache_prefix'].md5($content).$this->config['cache_suffix'];
|
||||||
if(!$this->checkCache($content,$cacheFile)) { // 缓存无效
|
if(!$this->checkCache($content,$cacheFile)) { // 缓存无效
|
||||||
// 模板编译
|
// 模板编译
|
||||||
$this->compiler($content,$cacheFile);
|
$this->compiler($content,$cacheFile);
|
||||||
}
|
}
|
||||||
// 读取编译存储
|
// 读取编译存储
|
||||||
$this->storage->read($cacheFile,$vars?$vars:$this->tVar);
|
$this->storage->read($cacheFile,$this->tVar);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -427,7 +440,7 @@ class Template {
|
|||||||
$begin = $this->config['taglib_begin'];
|
$begin = $this->config['taglib_begin'];
|
||||||
$end = $this->config['taglib_end'];
|
$end = $this->config['taglib_end'];
|
||||||
$className = '\\Think\\Template\\TagLib\\'.ucwords($tagLib);
|
$className = '\\Think\\Template\\TagLib\\'.ucwords($tagLib);
|
||||||
$tLib = new $className;
|
$tLib = new $className($this);
|
||||||
foreach ($tLib->getTags() as $name=>$val){
|
foreach ($tLib->getTags() as $name=>$val){
|
||||||
$tags = [$name];
|
$tags = [$name];
|
||||||
if(isset($val['alias'])) {// 别名设置
|
if(isset($val['alias'])) {// 别名设置
|
||||||
|
|||||||
@@ -60,10 +60,14 @@ class TagLib {
|
|||||||
* @var object
|
* @var object
|
||||||
* @access protected
|
* @access protected
|
||||||
*/
|
*/
|
||||||
public $tpl;
|
protected $tpl;
|
||||||
|
|
||||||
protected $comparison = [' nheq '=>' !== ',' heq '=>' === ',' neq '=>' != ',' eq '=>' == ',' egt '=>' >= ',' gt '=>' > ',' elt '=>' <= ',' lt '=>' < '];
|
protected $comparison = [' nheq '=>' !== ',' heq '=>' === ',' neq '=>' != ',' eq '=>' == ',' egt '=>' >= ',' gt '=>' > ',' elt '=>' <= ',' lt '=>' < '];
|
||||||
|
|
||||||
|
public function __construct($template){
|
||||||
|
$this->tpl = $template;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TagLib标签属性分析 返回标签属性数组
|
* TagLib标签属性分析 返回标签属性数组
|
||||||
* @access public
|
* @access public
|
||||||
|
|||||||
Reference in New Issue
Block a user