模板引擎驱动完成了第三方模板引擎的支持,通过定义模板引擎驱动,我们可以支持Smarty、TemplateLite、SmartTemplate和EaseTemplate等第三方模板引擎。
默认的模板引擎驱动的命名空间位于 Think\Template\Driver
,需要实现的接口方法只有一个 fetch($templateFile,$var) 用于渲染模板文件并输出。
下面是一个Smarty模板引擎扩展的示例:
namespace Think\Template\Driver;
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/',
),