1 Star 0 Fork 0

King / think-library

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

ThinkLibrary 6.0 for ThinkPHP 6.0

ThinkLibrary 6.0 是针对 ThinkPHP 6.0 版本封装的一套工具类库,方便快速构建 WEB 应用。

使用方法

composer require shuhao/think-library

包含组件

  • 数据列表展示(可带高级搜索器)
  • FORM表单处理器(表单展示及数据入库)
  • 数据状态快速处理(数据指定字段更新,支持多字段同时)
  • 数据安全删除处理(硬删除 + 软删除,is_deleted 字段存在则自动软删除)
  • 文件存储通用组件(本地服务存储 + FTP远程服务器存储 + 阿里云OSS存储 + 七牛云存储)
  • 通用数据保存更新(通过 key 值及 where 判定是否存在,存在则更新,不存在则新增)
  • 通用网络请求 (支持 get 及 post,可配置请求证书等)
  • 系统参数通用 g-k-v 配置(快速参数长久化配置)
  • UTF8加密算法支持(安全URL参数传参数)
  • 接口 CORS 跨域默认支持(输出 JSON 标准化)
  • 支持表单CSRF安全验证(自动化 FORM 标签替换)
  • 更新功能等待您来发现哦....

参考项目

ThinkAdmin - V6.0

代码仓库

ThinkLibrary 为 MIT 协议开源项目,安装使用或二次开发不受约束,欢迎 fork 项目。

部分代码来自互联网,若有异议可以联系作者进行删除。

使用说明

  • ThinkLibrary 需要 Composer 支持
  • 安装命令 composer require zoujingli/think-library 6.0.x-dev
  • 案例代码: 控制器需要继承 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 修改原列表
         }
    }
    
}
  • 必要数据库表SQL(sysdata 函数需要用这个表)
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 函数需要用的这个表)
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 函数需要用到这个表)
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']);

文件存储组件( oss 及 qiniu 需要配置参数)


// 配置默认存储方式    
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)

// 保存内容到文件(自动存储方式)
boolean \think\admin\Storage::save($filename, $content);

// 判断文件是否存在
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')->get($filename);
$result = \think\admin\Storage::instance('qiniu')->get($filename);

boolean \think\admin\Storage::instance('local')->has($filename);
boolean \think\admin\Storage::instance('qiniu')->has($filename);

$resutl = \think\admin\Storage::instance('local')->info($filename);
$resutl = \think\admin\Storage::instance('qiniu')->info($filename);

通用数据保存

// 指定关键列更新($where 为扩展条件)
boolean data_save($dbQuery, $data, 'pkname', $where);

通用网络请求

// 发起get请求
$result = http_get($url, $query, $options);

// 发起post请求
$result = http_post($url, $data, $options);

系统参数配置(基于 system_config 数据表)

// 设置参数
sysconf($keyname, $keyvalue);

// 获取参数
$keyvalue = sysconf($kename);

UTF8加密算法

// 字符串加密操作
$string = encode($content);

// 加密字符串解密
$content = decode($string);
MIT License Copyright (c) 2020 King Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

ThinkPHP v6.0 Development Library 展开 收起
PHP
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
PHP
1
https://gitee.com/mdpets/think-library.git
git@gitee.com:mdpets/think-library.git
mdpets
think-library
think-library
master

搜索帮助