内置模板引擎
视图的模板文件可以支持不同的解析规则 默认情况下无需手动初始化模板引擎。
可以通过下面的几种方式对模板引擎进行初始化。
配置文件
内置模板引擎的参数统一在配置目录的template.php
文件中配置 例如:
return [
// 模板引擎类型 支持 php think 支持扩展
'type' => 'Think',
// 模板路径
'view_path' => './template/',
// 模板后缀
'view_suffix' => 'html',
// 模板文件名分隔符
'view_depr' => '/',
// 模板引擎普通标签开始标记
'tpl_begin' => '{',
// 模板引擎普通标签结束标记
'tpl_end' => '}',
// 标签库标签开始标记
'taglib_begin' => '{',
// 标签库标签结束标记
'taglib_end' => '}',
],
视图根目录
视图文件的根目录默认情况下位于模块的view
目录 每个模块的视图目录可以通过模板参数view_path
自定义。
可以用view_base
模板引擎参数定义全局的视图根目录 然后模块作为子目录。
调用engine
方法初始化
视图类也提供了engine
方法对模板解析引擎进行初始化或切换不同的模板引擎 例如:
<?php
namespace appindexcontroller;
use thinkController;
class Index extends Controller
{
public function index()
{
// 使用内置PHP模板引擎渲染模板输出
return $this->engine('php')->fetch();
}
}
表示当前视图的模板文件使用原生php进行解析。
如果你需要动态改变模板引擎的参数 请使用视图类提供的
config
方法进行动态设置 而不要使用改变配置类参数的方式。
<?php
namespace appindexcontroller;
use thinkController;
class Index extends Controller
{
public function index()
{
// 改变当前操作的模板路径
$this->view->config('view_path', 'mypath');
return $this->fetch();
}
}
使用第三方模板引擎
官方扩展库中提供了个类似于angularjs
语法的模板引擎think-angular
具体可以参考参考手册。
另外还包括了个twig
模板引擎扩展:https://github.com/yunwuxin/think-twig
千年的回眸
thinkphp 设置多个主题
方法一 修改下面的代码
thinkphp\library\think\view\driver\Think.php
public function __construct($config =[]){
$this->config = array_merge($this->config, $config);
if (empty($this->config['view_path'])) {
$this->config['view_path'] = App::$modulePath . 'view' . DS;
}
if (!empty($this->config['theme'])) {
$this->config['view_path'] .= $this->config['theme'] . DS;
}
$this->template = new Template($this->config);
}
修改config.php的template里
'template' => [
'view_path' => './template/index/',
'theme' =>'default',
],
方法二 修改下面的代码
在控制器中写模板路经
$tpl = "company/default/list";
return $this->fetch($tpl,$vars);
第二种方好传简单方便些,不用修改thinkinphp框架