【小编推荐】ThinkPHP3.2——模板引擎驱动

2014-06-26   |   发布者:梁国芳   |   查看:3320次

Thinkphp

模板引擎驱动完成了第三方模板引擎的支持,通过定义模板引擎驱动,我们可以支持Smarty、TemplateLite、SmartTemplate和EaseTemplate等第三方模板引擎。

默认的模板引擎驱动的命名空间位于 Think\Template\Driver,需要实现的接口方法只有一个 fetch($templateFile,$var) 用于渲染模板文件并输出。

下面是一个Smarty模板引擎扩展的示例:

  1. namespace Think\Template\Driver;
  2. class Smarty {
  3.  
  4. /**
  5. * 渲染模板输出
  6. * @access public
  7. * @param string $templateFile 模板文件名
  8. * @param array $var 模板变量
  9. * @return void
  10. */
  11. public function fetch($templateFile,$var) {
  12. $templateFile = substr($templateFile,strlen(THEME_PATH));
  13. vendor('Smarty.Smarty#class');
  14. $tpl = new \Smarty();
  15. $tpl->caching = C('TMPL_CACHE_ON');
  16. $tpl->template_dir = THEME_PATH;
  17. $tpl->compile_dir = CACHE_PATH ;
  18. $tpl->cache_dir = TEMP_PATH ;
  19. if(C('TMPL_ENGINE_CONFIG')) {
  20. $config = C('TMPL_ENGINE_CONFIG');
  21. foreach ($config as $key=>$val){
  22. $tpl->{$key} = $val;
  23. }
  24. }
  25. $tpl->assign($var);
  26. $tpl->display($templateFile);
  27. }
  28. }

如果要使用Smarty模板引擎的话,只需要配置

  1. 'TMPL_ENGINE_TYPE'=>'Smarty',
  2. 'TMPL_ENGINE_CONFIG'=>array(
  3. 'plugins_dir'=>'./Application/Smarty/Plugins/',
  4. ),