发布于2026-07-05 阅读(0)
扫一扫,手机访问
在Linux环境下使用ThinkPHP模板引擎,其实比大多数人想象的要简单。只要基础环境搭好,配合正确的目录结构和控制器渲染方式,很快就能上手。下面就从环境准备开始,一步步梳理整个流程。
首先得确保Linux系统上已经装好了PHP 7.4或更高版本、Composer以及ThinkPHP框架(推荐6.x版本,兼容性更好,功能也更完善)。可以用下面两条命令快速验证环境是否就绪:

php -v
composer -V
模板文件默认放在 /application/[模块名]/view/ 目录下,比如 /application/index/view/。建议按模块划分视图文件夹,这样结构更清晰。举个例子:
/application/index/view/home/index.html # 首页模板
/user/profile.html # 用户资料模板
控制器中通过 assign() 方法传递数据,再用 fetch() 方法渲染模板。比如在 /application/index/controller/Index.php 里这样写:
assign('title', 'Linux下ThinkPHP模板使用教程');
// 传递数组数据
$data = [
'content' => '本教程将指导你在Linux环境下使用ThinkPHP模板引擎',
'version' => 'ThinkPHP 6.x'
];
$this->assign($data);
// 渲染模板(默认查找 /application/index/view/index/index.html)
return $this->fetch();
}
}
注:
fetch()方法的参数是模板文件路径(省略模块名和后缀),框架会自动定位到对应的目录。
ThinkPHP 6.x 默认使用 Twig 模板引擎(扩展了原生标签),语法更灵活,也更易读。下面梳理一下最常用到的几种语法。
用 {{ }} 包裹变量名,注意不需要加 $ 符号。像下面这样:
{{ title }}
{{ content }}
框架版本:{{ version }}
{% if isLogin %}
退出登录
{% else %}
登录
{% endif %}
{% for article in articles %}
-
{{ article.title }}
{{ article.content }}
{% endfor %}
注:
articles是控制器传递的数组,比如$this->assign('articles', $articleList)。
通过 {extend} 继承父模板,再用 {block} 重写子模板的内容。这种机制非常适合做网站统一布局,复用头部、底部等公共部分。
{% block title %}默认标题{% endblock %}
网站LOGO
{% block content %}{% endblock %}
{extend name="layout/base"}
{% block title %}首页 - {{ title }}{% endblock %}
{% block content %}
欢迎来到首页
{{ content }}
{% include "home/header.html" %}
{% for article in articles %}
- {{ article.title }}
{% endfor %}
{% include "home/footer.html" %}
{% endblock %}
在 {{ }} 里可以直接调用 PHP 函数,比如格式化时间:
当前时间:{{ "now"|date("Y-m-d H:i:s") }}
注:
date是 PHP 内置函数,"now"是时间标识符。
用 | 符号应用过滤器,比如转义 HTML 防止 XSS 攻击:
用户名:{{ username|htmlspecialchars }}
常用过滤器:
upper(转大写)、lower(转小写)、default(默认值,如{{ name|default('游客') }})。
开启模板缓存可以有效提升性能,在 config/view.php 里配置:
return [
'cache' => true, // 开启缓存
'cache_time' => 3600, // 缓存时间(秒)
'tpl_cache' => true, // 模板缓存开关
];
需要清除缓存时,可以直接通过命令行:
php think clear # 清除所有缓存(包括模板缓存)
或者在代码中手动清除:
use think\facade\Cache;
Cache::clear(); // 清除模板缓存
如果觉得内置标签不够用,可以通过继承 think\Template 类来扩展。比如创建一个 /application/common.php 文件,自定义一个日期格式化标签:
然后模板里就能这样用:
创建时间:{{ {'timestamp': item.create_time}|formatDate }}
用 {% include %} 引入公共模板,比如头部和尾部,能避免重复代码:
{% include "common/header.html" %}
{{ content }}
{% include "common/footer.html" %}
注:子模板路径是相对于当前模块的
view目录。
/application/view/ 目录有读写权限,推荐 chmod -R 755 /application/view/。Index 控制器的 index 方法,默认对应 /application/index/view/index/index.html。config/app.php 中把 'app_debug' => true 打开,就能看到详细的模板渲染错误信息,排查问题非常方便。'app_debug' => false),同时开启模板缓存,页面加载速度会有明显提升。掌握这些要点之后,你在 Linux 环境下就能比较顺畅地使用 ThinkPHP 模板引擎了。业务逻辑和视图层分离得越彻底,后续维护和扩展就越省力。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8