ThinkPHP6.0助手函数是运行时预加载的实用工具,非语法糖;默认仅在HTTP请求中自动可用,CLI等场景需手动引入helper.php或改用Facade。

ThinkPHP6.0 的助手函数不是语法糖,而是框架运行时预加载的实用工具函数,调用前需确保环境已正确初始化。它们默认只在 HTTP 请求生命周期中自动可用(如控制器、中间件),命令行、定时任务或自定义命令中直接调用会报 Call to undefined function 错误。
确认环境是否支持助手函数
大多数报错源于“函数未定义”,本质是加载时机问题:
- Web 请求中(如访问控制器方法):自动加载,可直接使用
config()、dump()、env()等 - CLI 场景(如 php think hello、定时任务):需手动引入或改用 Facade
- 若坚持用函数式,可在
composer.json的"autoload": {"files": []}中添加:"vendor/topthink/framework/src/helper.php",再执行composer dump-autoload - 更推荐方式:在类顶部加
use think\facade\Config;,然后用Config::get('app.name')替代config('app.name')
常用助手函数典型用法
以下操作无需实例化,传参即生效:
-
读配置:
config('database.host')(点号路径,大小写敏感);临时覆盖可config('app.debug', true) -
读环境变量:
env('REDIS_PORT', 6379)(仅当$_ENV['REDIS_PORT']完全未设置时才回退默认值) -
获取请求参数:
input('page/d', 1, 'intval')(自动过滤、转类型、设默认) -
响应输出:
json(['code' => 0, 'data' => $list])(自动设Content-Type: application/json和状态码) -
跳转与中断:
redirect(url('admin/index'))或abort(403, '禁止访问') -
调试辅助:
dump($user)友好展开变量;halt($user)输出后立即终止;trace('登录成功', 'info')写日志到runtime/log/
缓存、会话与路径定位
这些函数让非核心逻辑像赋值一样简单:
立即学习“PHP免费学习笔记(深入)”;
-
Session:
session('token')读;session('user_id', 1001)写;session(null)清空 -
Cache:
cache('user:123', $data, 3600)写入带过期时间的缓存;cache('user:123')读取;cache('user:123', null)删除 -
路径工具:
app_path()返回应用目录绝对路径;runtime_path()指向日志/缓存根目录;public_path()是 web 入口所在目录,静态资源引用应基于它拼接
模板与文件操作相关函数
部分助手函数专用于视图或响应场景:
-
模板渲染:
view('index', ['title' => '首页'])直接输出;模板内可用{:dump($data)}或{$Think.get.id}访问超全局变量 -
文件下载:
download('/var/www/tp6/public/files/report.pdf', '报表.pdf');支持链式调用如->expire(600)->force(true) -
URL 生成:
url('user/read', ['id' => 5])自动适配路由规则,避免硬编码路径



















