模板布局适用于首部和尾部基本上不发生变化的网页,比如企业网站等
要使用模板布局,首先需要在application\config\template.php中开启layout
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// +----------------------------------------------------------------------
// | 默认模板引擎设置
// +----------------------------------------------------------------------
define('DS',DIRECTORY_SEPARATOR);
return [
// 模板引擎类型 支持 php think 支持扩展
'type' => 'Think',
// 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
'auto_rule' => 1,
// 模板路径
'view_path' => '',
// 视图分离,定义全局的视图根目录,然后模块作为子目录
// 'view_base' => Env::get('ROOT_PATH').'resources'.DS.'views'.DS,
// 模板后缀
'view_suffix' => 'html',
// 模板文件名分隔符
'view_depr' => DS,
// 模板引擎普通标签开始标记
'tpl_begin' => '{',
// 模板引擎普通标签结束标记
'tpl_end' => '}',
// 标签库标签开始标记
'taglib_begin' => '{',
// 标签库标签结束标记
'taglib_end' => '}',
// 输出替换
'tpl_replace_string' => [
'__STATIC__' => '/static',
'__JS__' => '/static/js',
'__CSS__' => '/static/css',
],
// 开启模板布局
'layout_on' => true,
'layout_name'=>'layout',
];
这两行代码便是开启模板布局的核心代码:
// 开启模板布局
'layout_on' => true,
// 设定layout的文件名称
'layout_name'=>'layout',
当开启模板布局之后,视图的渲染就不再是直接渲染到控制器方法对应的html文件了,而是会先去访问view/layout.html文件,根据layout.html做出相应的渲染动作
layout.html文件:application\demo\view\layout.html
{include file='header' /}
{__CONTENT__}
{include file='footer' /}
header.html文件:application\demo\view\header.html,对应{include file='header' /}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2 style="color: red;">我是网站的头部</h2>
footer.html文件:application\demo\view\footer.html,对应{include file='footer' /}
<h2 style="color: green;">我是网站的尾部</h2>
</body>
</html>
__CONTENT__所替换的内容对应的文件:application\demo\view\demo8\test1.html,对应{__CONTENT__}
<h2 style="color: blue;">我正在学习PHP中文网的视频</h2>
控制器:
<?php
/**
* Created by PhpStorm.
* User: 10475
* Date: 2018/9/1
* Time: 17:30
*/
namespace app\demo\controller;
use think\Controller;
class Demo8 extends Controller
{
public function test1()
{
return $this->view->fetch();
}
}
使用了模板布局后,无论你{__CONTENT__}对应的文件内容怎么变,网页首部和尾部都不会发生变化