ThinkPHP-扩展指南-模板引擎扩展
来自站长百科
导航:返回上一页
除了使用内置的模板引擎外,系统还支持模板引擎扩展。并且官方已经提供了包括Smarty、EaseTemplate、TemplateLite和Smart在内的第三方模板引擎扩展。
模板引擎扩展类库的命名为:Template+模板引擎名称(首字母大写).模板引擎扩展类只需要实现一个fetch接口方法.
参数为:function fetch(模板文件,模板变量,模板编码)
例如:PHP代码
public function fetch($templateFile,$var,$charset) { $templateFile=substr($templateFile,strlen(TMPL_PATH)); vendor('Smarty.Smarty#class'); $tpl = new Smarty(); if(C('TMPL_ENGINE_CONFIG')) { $config = C('TMPL_ENGINE_CONFIG'); foreach ($config as $key=>$val){ $tpl->{$key} = $val; } }else{ $tpl->caching = C('TMPL_CACHE_ON'); $tpl->template_dir = TMPL_PATH; $tpl->compile_dir = CACHE_PATH ; $tpl->cache_dir = TEMP_PATH ; } $tpl->assign($var); $tpl->display($templateFile); }
如果扩展类库中需要涉及到第三方类库,可以放到Vendor目录下面,以供调用。要使用扩展模板引擎的话,只需要在项目配置文件中添加:
PHP代码
'TMPL_ENGINE_TYPE' => '模板引擎名称'
就可以使用对应的模板引擎来定义模板文件了。影响是只是模板文件的定义,视图操作方法保持原来的不变。例如在Action中用assign赋值模板变量、display和fetch方法的使用、模板文件的定位规则、模板替换功能仍然一致。