ThinkPHP-扩展指南-模板引擎扩展

来自站长百科
跳转至: 导航、​ 搜索

导航:返回上一页

除了使用内置的模板引擎外,系统还支持模板引擎扩展。并且官方已经提供了包括SmartyEaseTemplateTemplateLite和Smart在内的第三方模板引擎扩展。

模板引擎扩展类库的命名为:Template+模板引擎名称(首字母大写).模板引擎扩展类只需要实现一个fetch接口方法.

参数为:function fetch(模板文件,模板变量,模板编码)

例如PHP代码

public function fetch($templateFile,$var,$charset) {    

      $templateFile=substr($templateFile,strlen(TMPL_PATH));    

      vendor('Smarty.Smarty#class');    

      $tpl = new Smarty();    

      if(C('TMPL_ENGINE_CONFIG')) {    

          $config  =  C('TMPL_ENGINE_CONFIG');    

          foreach ($config as $key=>$val){    

              $tpl->{$key}   =  $val;    

          }    

      }else{    

          $tpl->caching = C('TMPL_CACHE_ON');    

          $tpl->template_dir = TMPL_PATH;    

          $tpl->compile_dir = CACHE_PATH ;    

          $tpl->cache_dir = TEMP_PATH ;    

      }    

      $tpl->assign($var);    

      $tpl->display($templateFile);    

  }    

如果扩展类库中需要涉及到第三方类库,可以放到Vendor目录下面,以供调用。要使用扩展模板引擎的话,只需要在项目配置文件中添加:

PHP代码

'TMPL_ENGINE_TYPE' => '模板引擎名称'   

就可以使用对应的模板引擎来定义模板文件了。影响是只是模板文件的定义,视图操作方法保持原来的不变。例如在Action中用assign赋值模板变量、display和fetch方法的使用、模板文件的定位规则、模板替换功能仍然一致。