⚙️ 内置函数
ThinkAdmin 提供丰富的内置函数库,可在系统的任意位置直接调用,简化开发流程。
🚀 主要功能
- 全局可用: 在系统的任意位置直接调用
- 功能丰富: 提供多种实用的内置函数
- 开发简化: 简化常见操作的实现
- 性能优化: 内置函数经过性能优化
- 类型安全: 提供完整的参数类型说明
- 文档完善: 详细的函数说明和示例
📋 函数分类
本文档按功能分类组织,方便快速查找:
- 🔧 开发调试 - 数据输出、模型操作、调试工具
- 🔐 权限安全 - 权限检查、安全防护、CSRF 保护
- 🌐 URL 路由 - URL 生成、路由处理
- 💾 数据处理 - 数据加密、格式转换、数据存储
- ⚙️ 系统配置 - 系统参数、环境检测、配置管理
- 📝 日志记录 - 操作日志、异常追踪
- 🌐 网络请求 - HTTP 请求处理
- 📁 文件处理 - 文件下载、文件管理、格式转换
- 📅 日期时间 - 日期格式化
- ⚡ 异步任务 - 任务队列、异步处理
- 🎯 Controller 基类 - 控制器通用方法
🔧 开发调试函数
📝 打印输出数据到文件
输出数据并保存到 Runtime 目录下面的文件。
参数:
$data(mixed):要输出的数据。$new(bool):是否强制替换文件,默认为 false。$file(string|null):保存文件名称。如果为 null,则只输出数据而不保存到文件,默认为 null。
返回:(false|int):如果保存成功,则返回保存到文件的字节数;如果保存失败,则返回 false。
p( $data, bool $new = false, ?string $file = null );🔧 动态创建模型对象
创建指定模型对象并初始化数据。
参数:
$name(string):模型名称。$data(array):初始数据,默认为空数组。$conn(string):指定连接,默认为空字符串。
返回: (\think\admin\Model):返回创建的模型对象。
m( string $name, array $data=[], string $conn='' );🔐 权限安全函数
🔐 访问权限节点检查
检查用户是否具有指定节点的权限。
参数:
$node(?string):节点名称,可选参数。
返回: (boolean):如果用户具有指定节点的权限,则返回 true;否则返回 false。
// 参数 ?string $node
// 返回 boolean
auth(?string $node);🌐 URL 路由函数
🔗 生成后台 URL 地址
快速生成后台可访问的 URI 地址,由 admin 入口及功能节点路径组成。
// 参数 string $url 路由地址
// 参数 array $vars PATH 变量
// 参数 boolean|string $suffix 后缀
// 参数 boolean|string $domain 域名
// 返回 string
admuri( string $url, array $vars, boolean|string $suffix, boolean|string $domain);🔗 生成最短 URL 地址
生成最短可访问系统的 URL 地址,类似 ThinkPHP 带的 URL 地址。
// 参数 string $url 路由地址
// 参数 array $vars PATH 变量
// 参数 boolean|string $suffix 后缀
// 参数 boolean|string $domain 域名
// 返回 string
sysuri( string $url, array $vars, boolean|string $suffix, boolean|string $domain );💾 数据处理函数
🔒 加密 UTF8 字符串
// 参数 string $content
// 返回 string
encode(string $content);🔓 解密 UTF8 字符串
// 参数 string $content
// 返回 string
decode(string $content);🔄 通用字符串转数组
// 参数 string $text 待转内容
// 参数 string $separ 分隔字符
// 参数 null|array $allow 限定规则
// 返回 array
str2arr(string $text, string $separ = ',', ?$allow=null);🔄 通用数组转字符串
// 参数 string $data 待转数组
// 参数 string $separ 分隔字符
// 参数 null|array $allow 限定规则
// 返回 array
arr2str(array $data, string $separ = ',', ?$allow=null);⚙️ 系统配置函数
🐛 调试模式判断
isDebug()✅ 产品模式判断
isOnline()⚙️ 获取或配置系统参数
// 参数 string $name 参数名称
// 参数 mixed $value 参数内容
// 返回 mixed
sysconf(string $name, $value)💾 数据读取与存储
// JSON 数据读取与存储
// 参数 string $name 数据名称
// 参数 mixed $value 数据内容
// 返回 mixed
sysdata(string $name, $value)📁 获取文件绝对路径
// 获取文件绝对路径
// 参数 string $name 文件路径名称
// 参数 string|null $root 根目录路径,默认为 null
// 返回 string 文件绝对路径
syspath(string $name, ?string $root = null)📝 日志记录函数
📝 写入系统操作日志
// 参数 string $action 日志行为
// 参数 string $content 日志内容
// 返回 boolean
sysoplog(string $action, string $content)🔐 生成 CSRF-TOKEN 参数
systoken();⚡ 异步任务函数
⚡ 注册异步处理任务
// 参数 string $title 任务名称
// 参数 string $command 执行内容
// 参数 integer $later 延时执行时间
// 参数 array $data 任务附加数据
// 参数 integer $rscript 任务类型(0单例,1多例)
// 参数 integer $loops 循环等待时间
// 返回 string
sysqueue(string $title, string $command, int $later=0, array $data=[], int $rscript=0, int $loops=0)🔐 Base64 安全 URL 编码
// 参数 string $string
// 返回 string
enbase64url(string $string);🔓 Base64 安全 URL 解码
// 参数 string $string
// 返回 string
debase64url(string $string);🛡️ 文本内容XSS过滤
// 参数 string $text
// 返回 string
xss_safe(string $text);🌐 网络请求函数
🌐 以 get 模拟网络请求
// 参数 string $url HTTP请求URL地址
// 参数 array|string $query GET请求参数
// 参数 array $options CURL参数
// 返回 boolean|string
http_get(string $url, $query = [], array $options = []);🌐 以 post 模拟网络请求
// 参数 string $url HTTP请求URL地址
// 参数 array|string $data POST请求数据
// 参数 array $options CURL参数
// 返回 boolean|string
http_post(string $url, $data = [], array $options = []);💾 数据增量保存
// 参数 Model|Query|string $dbQuery
// 参数 array $data 需要保存或更新的数据
// 参数 string $key 条件主键限制
// 参数 mixed $where 其它的where条件
// 返回 boolean|integer
data_save($dbQuery, array $data = [], string $key='id', $where = []);📁 文件处理函数
📥 下载远程文件到本地
// 参数 string $source 远程文件地址
// 参数 boolean $force 是否强制重新下载
// 参数 integer $expire 强制本地存储时间
// 返回 string
down_file(string $source, bool $force = false, int $expre = 0);⚠️ 输出异常数据到文件
// 参数 \Exception $exception
// 返回 boolean
trace_file(\Exception $exception)📊 文件字节单位转换
// 参数 string|integer $size 字节
// 返回 string
format_bytes($size);📅 日期时间函数
📅 日期格式标准输出
// 参数 int|string $datetime 输入日期
// 参数 string $format 输出格式
// 返回 string
format_datetime($datetime, string $format = "Y年m月d日 H:i:s");🎯 Controller 基类方法
Controller 基类方法来自 think-library 库,详细用法请参考对应的 Helper 文档。
响应方法
// 成功响应
// 参数 mixed $info 消息内容
// 参数 mixed $data 返回数据,默认为 '{-null-}'(会转换为空对象)
// 参数 mixed $code 返回代码,默认为 1
// 返回 void(直接输出响应)
success($info, $data = '{-null-}', $code = 1)
// 错误响应
// 参数 mixed $info 消息内容
// 参数 mixed $data 返回数据,默认为 '{-null-}'(会转换为空对象)
// 参数 mixed $code 返回代码,默认为 0
// 返回 void(直接输出响应)
error($info, $data = '{-null-}', $code = 0)
// URL 重定向
// 参数 string $url 跳转链接
// 参数 int $code 跳转代码,默认为 302
// 返回 void
redirect(string $url, int $code = 302)使用示例:
// 成功响应
$this->success('操作成功!', $data);
// 错误响应
$this->error('操作失败,请稍后重试!');
// URL 重定向
$this->redirect('/admin/user/index');视图方法
// 返回视图内容
// 参数 string $tpl 模板名称
// 参数 array $vars 模板变量
// 参数 null|string $node 授权节点
// 返回 void
fetch(string $tpl = '', array $vars = [], ?string $node = null)
// 模板变量赋值
// 参数 mixed $name 要显示的模板变量(字符串或数组)
// 参数 mixed $value 变量的值(当 $name 为字符串时)
// 返回 Controller 实例(支持链式调用)
assign($name, $value = '')使用示例:
// 返回视图
$this->fetch('user/index');
// 模板变量赋值
$this->assign('title', '用户管理');
// 或批量赋值
$this->assign(['title' => '用户管理', 'count' => 100]);Helper 快捷方法
这些方法返回对应的 Helper 实例,详细用法请参考对应的 Helper 文档:
_query(): 快捷查询逻辑器,返回QueryHelper实例(详见 数据查询助手)_page(): 快捷分页逻辑器,返回分页数据数组_form(): 快捷表单逻辑器,返回表单数据或处理表单提交(详见 快捷表单助手)_vali(): 快捷输入并验证,返回验证通过的数据数组_save(): 快捷更新逻辑器,返回更新结果(详见 数据更新助手)_delete(): 快捷删除逻辑器,返回删除结果(详见 软硬删除助手)
使用示例:
// 数据验证
$data = $this->_vali([
'username.require' => '用户名不能为空!',
'email.email' => '邮箱格式不正确!',
'status.in:0,1' => '状态值范围异常!',
]);
// 创建异步任务
$this->_queue('重新计算所有会员级别', "xsync:member", 1, [], 0);注意:
_checkInput()不是 Controller 基类的通用方法,而是开发者根据业务需求自定义的私有方法,用于安全检查等场景。_applyFormToken()是基类方法,但通常由 Helper 自动处理,开发者无需手动调用。- 更多 Helper 方法的详细用法,请参考对应的 Helper 文档。
