
模板引擎驱动完成了第三方模板引擎的支持,通过定义模板引擎驱动,我们可以支持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/',),
