ThinkPHP5 模板渲染

来源:互联网 发布:达内java培训机构 编辑:程序博客网 时间:2024/05/16 13:02
调用模板引擎方法

我们可以单独设置当前模板渲染所使用的模板引擎,默认的采用think模板引擎,
是ThinkPHP内置的基于xml解析的编译型模板引擎。
可以在个别控制器方法中调用engine方法切换其它的模板引擎来进行模板渲染,例如:
<?php
namespace app\index\controller;
use think\Controller;

class Index extends Controller
{
    public function index()
    {
        // 切换到原生PHP渲染模板输出          
        return $this->engine('php')->fetch();
    }
}


engine方法如果使用字符串表示模板引擎的名称,然后使用默认参数,
也可以传入模板引擎的参数数组,例如:
<?php
namespace app\index\controller;
use think\Controller;

class Index extends Controller
{
    public function index()
    {
        // 切换到原生PHP渲染模板输出
        return $this->engine([
            'type' => 'php',            // 模板后缀
            'view_suffix' => 'php',     // 模板文件名分隔符
            'view_depr' => DS,
        ])->fetch();
    }
}

并且视图类提供了一个public类型的engine属性可以直接操作模板引擎实例,
你可以用来调用模板引擎的其它方法:
<?php
namespace app\index\controller;
use think\Controller;

class Index extends Controller
{
    public function index()
    {
        // 调用模板引擎的布局方法          
        $this->view->engine->layout('layout_name');
        // 渲染模板输出          
        return $this->fetch();
    }
}



使用其它模板引擎

默认还支持使用原生PHP作为模板(不需要编译),设置模板引擎的type参数为php即可,
下面的设置表示使用原生PHP文件作为模板文件(模板文件后缀设置为php),
然后在视图文件中只能使用PHP原生的语法:
'template'  => [  
// 模板引擎类型    
'type'  => 'php',  
// 视图基础目录    
'view_base'    => '',  
// 当前模板的视图目录 留空为自动获取    
'view_path'    => '',  
// 模板后缀    
'view_suffix'  => 'php',  
// 模板文件名分隔符    
'view_depr'    => DS,  ],


目前除了内置的模板引擎之外,还有两个第三方模板引擎扩展,分别是:

Angular模板引擎扩展
https://github.com/top-think/think-angular
Twig模板引擎扩展 https://github.com/yunwuxin/think-twig

要使用第三方模板引擎扩展,通常需要使用Composer安装,以  Angular模板引擎扩展为例,使用:
composer require topthink/think-angular

安装后如果你需要调用第三方模板引擎,只需要在type参数中配置或者实例化的时候传入,例如:
'template'  => [
// 配置使用第三方模板引擎    
'type'         => 'angular',  
// 视图基础目录,配置目录为所有模块的视图起始目录    
'view_base'    => '',  
// 当前模板的视图目录 留空为自动获取    
'view_path'    => '',  
// 模板后缀    
'view_suffix'  => 'html',  
// 模板文件名分隔符    
'view_depr'    => DS,  ],



原创粉丝点击