代码拉取完成,页面将自动刷新
ThinkLibrary 是一个针对 ThinkPHP 6 & 8 的封装库,它提供了完整的 CRUD(创建、读取、更新、删除)操作和一系列常用工具。 该库特别注重多应用支持,为开发者提供便利。前端代码的主仓库位于 Gitee,而 GitHub 则作为镜像仓库用于发布 Composer 包,以方便开发者下载和使用。
我们的代码仓库已移至 Github,而 Gitee 则仅作为国内镜像仓库,方便广大开发者获取和使用。若想提交 PR 或 ISSUE 请在 ThinkAdminDeveloper 仓库进行操作,如果在其他仓库操作或提交问题将无法处理!。
ThinkLibrary 遵循 MIT 开源协议发布,并免费提供使用。
部分代码来自互联网,若有异议可以联系作者进行删除。
admin
)composer require zoujingli/think-library
。think\admin\Controller
。一旦继承完成,您就可以通过 $this
对象访问并使用全部功能。// 定义 MyController 控制器
class MyController extend \think\admin\Controller {
// 指定当前数据表名
protected $dbQuery = '数据表名';
// 显示数据列表
public function index(){
$this->_page($this->dbQuery);
}
// 当前列表数据处理
protected function _index_page_filter(&$data){
foreach($data as &$vo){
// @todo 修改原列表
}
}
}
CREATE TABLE `system_data`
(
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL COMMENT '配置名',
`value` longtext COMMENT '配置值',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_system_data_name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统-数据';
CREATE TABLE `system_oplog`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`node` varchar(200) NOT NULL DEFAULT '' COMMENT '当前操作节点',
`geoip` varchar(15) NOT NULL DEFAULT '' COMMENT '操作者IP地址',
`action` varchar(200) NOT NULL DEFAULT '' COMMENT '操作行为名称',
`content` varchar(1024) NOT NULL DEFAULT '' COMMENT '操作内容描述',
`username` varchar(50) NOT NULL DEFAULT '' COMMENT '操作人用户名',
`create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统-日志';
sysconf
函数需要用到这个表)CREATE TABLE `system_config`
(
`type` varchar(20) DEFAULT '' COMMENT '分类',
`name` varchar(100) DEFAULT '' COMMENT '配置名',
`value` varchar(500) DEFAULT '' COMMENT '配置值',
KEY `idx_system_config_type` (`type`),
KEY `idx_system_config_name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统-配置';
CREATE TABLE `system_queue`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`code` varchar(20) DEFAULT '' COMMENT '任务编号',
`title` varchar(50) NOT NULL DEFAULT '' COMMENT '任务名称',
`command` varchar(500) DEFAULT '' COMMENT '执行指令',
`exec_data` longtext COMMENT '执行参数',
`exec_time` bigint(20) unsigned DEFAULT '0' COMMENT '执行时间',
`exec_desc` varchar(500) DEFAULT '' COMMENT '状态描述',
`enter_time` bigint(20) DEFAULT '0' COMMENT '开始时间',
`outer_time` bigint(20) DEFAULT '0' COMMENT '结束时间',
`attempts` bigint(20) DEFAULT '0' COMMENT '执行次数',
`rscript` tinyint(1) DEFAULT '1' COMMENT '单例模式',
`status` tinyint(1) DEFAULT '1' COMMENT '任务状态(1新任务,2处理中,3成功,4失败)',
`create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_system_queue_code` (`code`),
KEY `idx_system_queue_title` (`title`) USING BTREE,
KEY `idx_system_queue_status` (`status`) USING BTREE,
KEY `idx_system_queue_rscript` (`rscript`) USING BTREE,
KEY `idx_system_queue_create_at` (`create_at`) USING BTREE,
KEY `idx_system_queue_exec_time` (`exec_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统-任务';
// 列表展示
$this->_page($dbQuery, $isPage, $isDisplay, $total);
// 列表展示搜索器(按 name、title 模糊搜索;按 status 精确搜索)
$this->_query($dbQuery)->like('name,title')->equal('status')->page();
// 对列表查询器进行二次处理
$query = $this->_query($dbQuery)->like('name, title')->equal('status');
$db = $query->db(); // @todo 这里可以对db进行操作
$this->_page($db); // 显示列表分页
// 表单显示及数据更新
$this->_form($dbQuery, $tplFile, $pkField , $where, $data);
// 数据删除处理
$this->_deleted($dbQuery);
// 数据禁用处理
$this->_save($dbQuery, ['status'=>'0']);
// 数据启用处理
$this->_save($dbQuery, ['status'=>'1']);
// 配置默认存储方式
sysconf('storage.type','文件存储类型');
// 七牛云存储配置
sysconf('storage.qiniu_region', '文件存储节点');
sysconf('storage.qiniu_domain', '文件访问域名');
sysconf('storage.qiniu_bucket', '文件存储空间名称');
sysconf('storage.qiniu_is_https', '文件HTTP访问协议');
sysconf('storage.qiniu_access_key', '接口授权AccessKey');
sysconf('storage.qiniu_secret_key', '接口授权SecretKey');
// 生成文件名称(链接url或文件md5)
$filename = \think\admin\Storage::name($url, $ext, $prv, $fun);
// 获取文件内容(自动存储方式)
$result = \think\admin\Storage::get($filename);
// 保存内容到文件(自动存储方式)
$result = \think\admin\Storage::save($filename, $content);
// 判断文件是否存在
boolean \think\admin\Storage::has($filename);
// 获取文件信息
$result = \think\admin\Storage::info($filename);
//指定存储类型(调用方法)
$result = \think\admin\Storage::instance('local')->save($filename, $content);
$result = \think\admin\Storage::instance('qiniu')->save($filename, $content);
$result = \think\admin\Storage::instance('txcos')->save($filename, $content);
$result = \think\admin\Storage::instance('upyun')->save($filename, $content);
$result = \think\admin\Storage::instance('alioss')->save($filename, $content);
// 读取文件内容
$result = \think\admin\Storage::instance('local')->get($filename);
$result = \think\admin\Storage::instance('qiniu')->get($filename);
$result = \think\admin\Storage::instance('txcos')->get($filename);
$result = \think\admin\Storage::instance('upyun')->get($filename);
$result = \think\admin\Storage::instance('alioss')->get($filename);
// 生成 URL 访问地址
$result = \think\admin\Storage::instance('local')->url($filename);
$result = \think\admin\Storage::instance('qiniu')->url($filename);
$result = \think\admin\Storage::instance('txcos')->url($filename);
$result = \think\admin\Storage::instance('upyun')->url($filename);
$result = \think\admin\Storage::instance('alioss')->url($filename);
// 检查文件是否存在
boolean \think\admin\Storage::instance('local')->has($filename);
boolean \think\admin\Storage::instance('qiniu')->has($filename);
boolean \think\admin\Storage::instance('txcos')->has($filename);
boolean \think\admin\Storage::instance('upyun')->has($filename);
boolean \think\admin\Storage::instance('alioss')->has($filename);
// 生成文件信息
$resutl = \think\admin\Storage::instance('local')->info($filename);
$resutl = \think\admin\Storage::instance('qiniu')->info($filename);
$resutl = \think\admin\Storage::instance('txcos')->info($filename);
$resutl = \think\admin\Storage::instance('upyun')->info($filename);
$resutl = \think\admin\Storage::instance('alioss')->info($filename);
// 指定关键列更新($where 为扩展条件)
boolean data_save($dbQuery, $data, 'pkname', $where);
// 发起get请求
$result = http_get($url, $query, $options);
// 发起post请求
$result = http_post($url, $data, $options);
// 设置参数
sysconf($keyname, $keyvalue);
// 获取参数
$keyvalue = sysconf($kename);
自研 UTF8 加密
// 自研 UTF8 字符串加密操作
$string = encode($content);
// 自研 UTF8 加密字符串解密
$content = decode($string);
数据解密
use think\admin\extend\CodeExtend;
// 数据 AES-256-CBC 对称加密
$encrypt = CodeExtend::encrypt($content, $enckey);
// 数据 AES-256-CBC 对称解密
$content = CodeExtend::decrypt($encrypt, $enckey);
文本转 UTF8 编码
use think\admin\extend\CodeExtend;
// 文本转 UTF8 编码
$content = CodeExtend::text2utf8($content)
文本 Base64 URL 编码
use think\admin\extend\CodeExtend;
// 文本 Base64 URL 编码
$safe64 = CodeExtend::enSafe64($content)
// 文本 Base64 URL 解码
$content = CodeExtend::deSafe64($safe64)
use think\admin\extend\CodeExtend;
// 数据压缩 ( 内容越大效果越好 )
$enzip = CodeExtend::enzip($content)
// 数据解压 ( 内容越大效果越好 )
$content = CodeExtend::dezip($enzip)
use think\admin\extend\CodeExtend;
// 二维数组 转为 立体数据结构,需要存在 id 及 pid 关系
$tree = CodeExtend::arr2tree($list);
// 二维数组 转为 扁平数据结构,需要存在 id 及 pid 关系
$tree = CodeExtend::arr2table($list);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型