125. 模板引擎

使用thinkTemplate模板引擎

新版框架默认只能支持PHP原生模板,如果需要使用thinkTemplate模板引擎,需要安装think-view扩展(该扩展会自动安装think-template依赖库)。

composer require topthink/think-view

配置文件

安装完成后,在配置目录的view.php文件中进行模板引擎相关参数的配置,例如:

return [
    // 模板引擎类型
    'type'         => 'Think',
    // 模板路径
    'view_path'    => './template/',
    // 模板后缀
    'view_suffix'  => 'html',
    // 模板文件名分隔符
    'view_depr'    => '/',
    // 模板引擎普通标签开始标记
    'tpl_begin'    => '{',
    // 模板引擎普通标签结束标记
    'tpl_end'      => '}',
    // 标签库标签开始标记
    'taglib_begin' => '{',
    // 标签库标签结束标记
    'taglib_end'   => '}',
];

调用engine方法初始化

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

<?php
namespace app\index\controller;
use think\facade\View;
class Index
{
    public function index()
    {
        // 使用内置PHP模板引擎渲染模板输出
        return View::engine('php')->fetch();
    }
}

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

如果你需要动态改变模板引擎的参数,请使用视图类提供的config方法进行动态设置,而不要使用改变配置类参数的方式。

<?php
namespace app\index\controller;
use think\facade\View;
class Index 
{
    public function index()
    {
        // 改变当前操作的模板路径
        View::config(['view_path' => 'mypath']);
        return View::fetch();
    }
}
下一节:默认的视图仅支持PHP原生模板,如果你需要扩展支持其它的模板引擎,可以实现一个ThinkPHP视图的模板引擎驱动,该驱动必须实现think\contract\TemplateHandlerInterface接口,包含下列方法。