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