模板引擎驱动完成了第三方模板引擎的支持,通过定义模板引擎驱动,我们可以支持Smarty、TemplateLite、SmartTemplate和EaseTemplate等第三方模板引擎。
默认的模板引擎驱动的命名空间位于 ThinkTemplateDriver
,需要实现的接口方法只有一个 fetch($templateFile,$var) 用于渲染模板文件并输出。
下面是一个Smarty模板引擎扩展的示例:
namespace ThinkTemplateDriver;
class Smarty {
/**
* 渲染模板输出
* @access public
* @param string $templateFile 模板文件名
* @param array $var 模板变量
* @return void
*/
public function fetch($templateFile,$var) {
$templateFile = substr($templateFile,strlen(THEME_PATH));
vendor("Smarty.Smarty#class");
$tpl = new Smarty();
$tpl->caching = C("TMPL_CACHE_ON");
$tpl->template_dir = THEME_PATH;
$tpl->compile_dir = CACHE_PATH ;
$tpl->cache_dir = TEMP_PATH ;
if(C("TMPL_ENGINE_CONFIG")) {
$config = C("TMPL_ENGINE_CONFIG");
foreach ($config as $key=>$val){
$tpl->{$key} = $val;
}
}
$tpl->assign($var);
$tpl->display($templateFile);
}
}
如果要使用Smarty模板引擎的话,只需要配置
"TMPL_ENGINE_TYPE"=>"Smarty",
"TMPL_ENGINE_CONFIG"=>array(
"plugins_dir"=>"./Application/Smarty/Plugins/",
),