|
@@ -1,17 +1,19 @@
|
|
|
[](https://packagist.org/packages/zoujingli/think-library) [](https://packagist.org/packages/zoujingli/think-library) [](https://packagist.org/packages/zoujingli/think-library) [](https://packagist.org/packages/zoujingli/think-library)
|
|
|
|
|
|
# ThinkLibrary 6.0 for ThinkPHP 6.0
|
|
|
+
|
|
|
ThinkLibrary 6.0 是针对 ThinkPHP 6.0 版本封装的一套工具类库,方便快速构建 Web 应用。
|
|
|
|
|
|
## 包含组件
|
|
|
+
|
|
|
* 数据列表展示(可带高级搜索器)
|
|
|
* FORM表单处理器(表单展示及数据入库)
|
|
|
* 数据状态快速处理(数据指定字段更新,支持多字段同时)
|
|
|
* 数据安全删除处理(硬删除 + 软删除,is_deleted 或 deleted 字段存在则自动软删除)
|
|
|
-* 文件存储通用组件(本地服务存储 + 七牛云存储 + 阿里云OSS存储 + 腾讯云COS存储)
|
|
|
+* 文件存储通用组件(本地服务存储 + 七牛云存储 + 阿里云OSS存储 + 腾讯云COS存储)
|
|
|
* 通用数据保存更新(通过 key 值及 where 判定是否存在,存在则更新,不存在则新增)
|
|
|
* 通用网络请求 (支持 get 及 post,可配置请求证书等)
|
|
|
-* 系统参数通用 g-k-v 配置(快速参数长久化配置)
|
|
|
+* 系统参数通用 g-k-v 配置(快速参数长久化配置)
|
|
|
* UTF8加密算法支持(安全URL参数传参数)
|
|
|
* 接口 CORS 跨域默认支持(输出 JSON 标准化)
|
|
|
* 支持表单CSRF安全验证(自动化 FORM 标签替换)
|
|
@@ -20,24 +22,27 @@ ThinkLibrary 6.0 是针对 ThinkPHP 6.0 版本封装的一套工具类库,方
|
|
|
## 参考项目
|
|
|
|
|
|
#### ThinkAdmin - V6.0
|
|
|
+
|
|
|
* Gitee 仓库 https://gitee.com/zoujingli/ThinkAdmin/tree/v6
|
|
|
* Github 仓库 https://github.com/zoujingli/ThinkAdmin/tree/v6
|
|
|
* 体验地址(账号密码都是admin)https://v6.thinkadmin.top
|
|
|
|
|
|
## 代码仓库
|
|
|
- ThinkLibrary 为 MIT 协议开源项目,安装使用或二次开发不受约束,欢迎 fork 项目。
|
|
|
-
|
|
|
- 部分代码来自互联网,若有异议可以联系作者进行删除。
|
|
|
-
|
|
|
- * 在线体验地址:https://v6.thinkadmin.top (账号和密码都是 admin )
|
|
|
- * Gitee仓库地址:https://gitee.com/zoujingli/ThinkLibrary
|
|
|
- * Github仓库地址:https://github.com/zoujingli/ThinkLibrary
|
|
|
+
|
|
|
+ThinkLibrary 为 MIT 协议开源项目,安装使用或二次开发不受约束,欢迎 fork 项目。
|
|
|
+
|
|
|
+部分代码来自互联网,若有异议可以联系作者进行删除。
|
|
|
+
|
|
|
+* 在线体验地址:https://v6.thinkadmin.top (账号和密码都是 admin )
|
|
|
+* Gitee 仓库地址:https://gitee.com/zoujingli/ThinkLibrary
|
|
|
+* Github 仓库地址:https://github.com/zoujingli/ThinkLibrary
|
|
|
|
|
|
## 使用说明
|
|
|
+
|
|
|
* ThinkLibrary 需要 Composer 支持
|
|
|
* 安装命令 ` composer require zoujingli/think-library 6.0.x-dev`
|
|
|
-* 案例代码:
|
|
|
-控制器需要继承 `think\admin\Controller`,然后`$this`就可能使用全部功能
|
|
|
+* 案例代码: 控制器需要继承 `think\admin\Controller`,然后`$this`就可能使用全部功能
|
|
|
+
|
|
|
```php
|
|
|
// 定义 MyController 控制器
|
|
|
class MyController extend \think\admin\Controller {
|
|
@@ -61,40 +66,49 @@ class MyController extend \think\admin\Controller {
|
|
|
```
|
|
|
|
|
|
* 必要数据库表SQL(sysdata 函数需要用这个表)
|
|
|
+
|
|
|
```sql
|
|
|
-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
|
|
|
+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='系统-数据';
|
|
|
```
|
|
|
|
|
|
* 必要数据库表SQl(sysoplog 函数需要用的这个表)
|
|
|
+
|
|
|
```sql
|
|
|
-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
|
|
|
+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='系统-日志';
|
|
|
```
|
|
|
+
|
|
|
* 必要数据库表SQL(sysconf 函数需要用到这个表)
|
|
|
+
|
|
|
```sql
|
|
|
-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
|
|
|
+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='系统-配置';
|
|
|
```
|
|
|
+
|
|
|
* 系统任务列队支持需要的数据表
|
|
|
+
|
|
|
```sql
|
|
|
CREATE TABLE `system_queue` (
|
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
@@ -121,6 +135,7 @@ CREATE TABLE `system_queue` (
|
|
|
```
|
|
|
|
|
|
#### 列表处理
|
|
|
+
|
|
|
```php
|
|
|
// 列表展示
|
|
|
$this->_page($dbQuery, $isPage, $isDisplay, $total);
|
|
@@ -135,18 +150,21 @@ $this->_page($db); // 显示列表分页
|
|
|
```
|
|
|
|
|
|
#### 表单处理
|
|
|
+
|
|
|
```php
|
|
|
// 表单显示及数据更新
|
|
|
$this->_form($dbQuery, $tplFile, $pkField , $where, $data);
|
|
|
```
|
|
|
|
|
|
#### 删除处理
|
|
|
+
|
|
|
```php
|
|
|
// 数据删除处理
|
|
|
$this->_deleted($dbQuery);
|
|
|
```
|
|
|
|
|
|
#### 禁用启用处理
|
|
|
+
|
|
|
```php
|
|
|
// 数据禁用处理
|
|
|
$this->_save($dbQuery, ['status'=>'0']);
|
|
@@ -156,6 +174,7 @@ $this->_save($dbQuery, ['status'=>'1']);
|
|
|
```
|
|
|
|
|
|
#### 文件存储组件( oss 及 qiniu 需要配置参数)
|
|
|
+
|
|
|
```php
|
|
|
|
|
|
// 配置默认存储方式
|
|
@@ -174,10 +193,10 @@ sysconf('storage.qiniu_secret_key', '接口授权SecretKey');
|
|
|
$filename = \think\admin\Storage::name($url, $ext, $prv, $fun);
|
|
|
|
|
|
// 获取文件内容(自动存储方式)
|
|
|
-$result = \think\admin\Storage::get($filename)
|
|
|
+$result = \think\admin\Storage::get($filename);
|
|
|
|
|
|
// 保存内容到文件(自动存储方式)
|
|
|
-boolean \think\admin\Storage::save($filename, $content);
|
|
|
+$result = \think\admin\Storage::save($filename, $content);
|
|
|
|
|
|
// 判断文件是否存在
|
|
|
boolean \think\admin\Storage::has($filename);
|
|
@@ -186,26 +205,45 @@ boolean \think\admin\Storage::has($filename);
|
|
|
$result = \think\admin\Storage::info($filename);
|
|
|
|
|
|
//指定存储类型(调用方法)
|
|
|
-boolean \think\admin\Storage::instance('local')->save($filename, $content);
|
|
|
-boolean \think\admin\Storage::instance('qiniu')->save($filename, $content);
|
|
|
+$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('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('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('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('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('alioss')->info($filename);
|
|
|
```
|
|
|
|
|
|
#### 通用数据保存
|
|
|
+
|
|
|
```php
|
|
|
// 指定关键列更新($where 为扩展条件)
|
|
|
boolean data_save($dbQuery, $data, 'pkname', $where);
|
|
|
```
|
|
|
|
|
|
#### 通用网络请求
|
|
|
+
|
|
|
```php
|
|
|
// 发起get请求
|
|
|
$result = http_get($url, $query, $options);
|
|
@@ -215,6 +253,7 @@ $result = http_post($url, $data, $options);
|
|
|
```
|
|
|
|
|
|
#### 系统参数配置(基于 system_config 数据表)
|
|
|
+
|
|
|
```php
|
|
|
// 设置参数
|
|
|
sysconf($keyname, $keyvalue);
|
|
@@ -224,6 +263,7 @@ $keyvalue = sysconf($kename);
|
|
|
```
|
|
|
|
|
|
#### UTF8加密算法
|
|
|
+
|
|
|
```php
|
|
|
// 字符串加密操作
|
|
|
$string = encode($content);
|