加载中...

模板引擎


内置模板引擎

视图的模板文件可以支持不同的解析规则,默认情况下无需手动初始化模板引擎。

可以通过下面的几种方式对模板引擎进行初始化。

配置文件

在应用配置文件中配置template参数即可,例如:

  1. 'template' => [
  2. // 模板引擎类型 支持 php think 支持扩展
  3. 'type' => 'Think',
  4. // 模板路径
  5. 'view_path' => './template/',
  6. // 模板后缀
  7. 'view_suffix' => 'html',
  8. // 模板文件名分隔符
  9. 'view_depr' => DS,
  10. // 模板引擎普通标签开始标记
  11. 'tpl_begin' => '{',
  12. // 模板引擎普通标签结束标记
  13. 'tpl_end' => '}',
  14. // 标签库标签开始标记
  15. 'taglib_begin' => '{',
  16. // 标签库标签结束标记
  17. 'taglib_end' => '}',
  18. ],

调用视图类进行操作或者使用view助手函数的时候会自动实例化相关的模板引擎并传入参数。

视图根目录

视图文件的根目录默认情况下位于模块的view目录,每个模块的视图目录可以通过模板参数view_path自定义。

V5.0.3+版本开始,新增了view_base模板引擎参数,可以用于定义全局的视图根目录,然后模块作为子目录。

实例化视图

可以在实例化视图的时候直接传入模板引擎配置参数,会在渲染输出的时候自动初始化模板引擎,例如:

  1. $view = new View([
  2. 'type' => 'think',
  3. 'view_path' => './template/',
  4. 'view_suffix' => 'php',
  5. 'view_depr' => DS,
  6. 'tpl_begin' => '{', // 模板引擎普通标签开始标记
  7. 'tpl_end' => '}', // 模板引擎普通标签结束标记
  8. 'strip_space' => true, // 去除模板文件里面的html空格与换行
  9. 'tpl_cache' => true, // 开启模板编译缓存
  10. 'taglib_pre_load' => '', // 需要额外加载的标签库(须指定标签库名称),多个以逗号分隔
  11. 'tpl_replace_string' => [],// 模板过滤输出(与输出替换章节不同,前者对模版进行过滤)
  12. ]);

think模板引擎是ThinkPHP内置的一个基于XML的高效的编译型模板引擎,系统默认使用的模板引擎是内置模板引擎,关于这个模板引擎的标签详细使用可以参考模板部分。

调用engine方法初始化

视图类也提供了engine方法对模板解析引擎进行初始化或者切换不同的模板引擎,例如:

  1. $view = new View();
  2. return $view->engine('php')->fetch();

表示当前视图的模板文件使用原生php进行解析。

设置模板引擎参数

除了在实例化的时候传入外,可以动态设置模板引擎的相关参数,例如:

  1. $view = new View();
  2. return $view->config('view_path','./template/')->fetch();

使用第三方模板引擎

官方扩展库中提供了一个类似于angularjs语法的模板引擎think-angular,具体可以参考参考手册


还没有评论.