数字化技能提升教程,数字化时代生存宝典

数字化百科 / 词条 / ThinkPHP-扩展指南-模板引擎扩展

ThinkPHP-扩展指南-模板引擎扩展

查看全部词条命名空间:Main

导航:返回上一页

除了使用内置的模板引擎外,系统还支持模板引擎扩展。并且官方已经提供了包括SmartyEaseTemplateTemplateLite和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方法的使用、模板文件的定位规则、模板替换功能仍然一致。

category:ThinkPHP