ThinkLibrary

Latest Stable VersionLatest Unstable VersionTotal DownloadsMonthly DownloadsDaily DownloadsPHP VersionLicense

ThinkLibrary 是一个针对 ThinkPHP 6 & 8 的封装库,提供完整的 CRUD(创建、读取、更新、删除)操作和一系列常用工具。特别注重多应用支持,方便开发者使用。前端代码的主仓库位于 Gitee,而 GitHub 则作为镜像仓库发布 Composer 包。

功能说明

  1. 数据列表展示组件

    • 功能:展示数据列表,支持分页、排序和高级搜索。
    • 优化点:提供用户友好的界面,确保数据准确和实时更新。
    • 高级特性:多排序方式、自定义搜索字段。
  2. 表单处理模块

    • 功能:用于创建、展示和提交表单数据。
    • 优化点:完善的表单验证和错误处理机制。
    • 高级特性:支持动态表单生成和多种验证规则。
  3. 数据状态快速处理模块

    • 功能:根据业务需求快速更新数据状态。
    • 优化点:简洁接口,支持多字段同时更新。
    • 高级特性:条件判断和事务处理,确保数据一致性。
  4. 数据安全删除模块

    • 功能:安全删除数据,支持软删除和硬删除。
    • 优化点:自动软删除配置和标记字段。
    • 高级特性:支持条件软删除。
  5. 文件存储通用组件

    • 功能:支持多种文件存储方式(本地服务存储、云存储等)。
    • 优化点:统一接口和配置,快速集成。
    • 高级特性:文件上传、下载、删除和版本控制。
  6. 通用数据保存更新模块

    • 功能:基于 key 和条件判断数据存在性,进行更新或新增。
    • 优化点:简洁接口,减少冗余代码。
    • 高级特性:支持乐观锁和悲观锁,确保数据一致性。
  7. 通用网络请求模块

    • 功能:支持 GET、POST 和 PUT 请求。
    • 优化点:统一接口,方便配置请求参数。
    • 高级特性:请求重试、超时设置、异常捕获等。
  8. 系统参数配置模块

    • 功能:快速配置并保存系统参数。
    • 优化点:简洁操作,方便参数管理。
    • 高级特性:支持参数加密、权限控制、日志记录。
  9. UTF-8 加密算法支持

    • 功能:提供 UTF-8 字符串加密和解密功能。
    • 优化点:增强加密安全性。
    • 高级特性:多加密算法、密钥管理。
  10. 接口 CORS 跨域支持

    • 功能:默认支持跨域请求,输出标准化 JSON 数据。
    • 优化点:自动处理跨域问题,减少开发工作量。
    • 高级特性:支持定制化响应头和跨域请求限制。
  11. 表单 CSRF 安全验证

    • 功能:自动为表单添加 CSRF 安全验证字段。
    • 优化点:简化开发流程,增强表单安全性。
    • 高级特性:自定义验证规则和多种验证方式。

参考项目

代码仓库

ThinkLibrary 遵循 MIT 开源协议发布,免费使用。部分代码来源于互联网,若有异议可联系作者删除。

加入我们

我们的代码仓库已移至 Github,而 Gitee 仅作为国内镜像仓库,便于开发者访问。若想提交 PRISSUE,请在 ThinkAdminDeveloper 仓库操作,其他仓库的提交将无法处理。

使用说明

  1. 依赖管理:ThinkLibrary 需要 Composer 支持进行安装和依赖管理。
  2. 安装指南:使用以下命令安装 ThinkLibrary:
    composer require zoujingli/think-library
  3. 使用示例:在使用时,确保控制器继承自 think\admin\Controller
    // 定义 MyController 控制器
    class MyController extends \think\admin\Controller {
        protected $dbQuery = '数据表名';
    
        public function index() {
            $this->_page($this->dbQuery);
        }
    
        protected function _index_page_filter(&$data) {
            foreach ($data as &$vo) {
                // @todo 修改原列表
            }
        }
    }

必要数据库表 SQL

system_data 表:

CREATE TABLE `system_data` (
    `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,
    `name` varchar(100) DEFAULT NULL COMMENT '配置名',
    `value` longtext COMMENT '配置值',
    PRIMARY KEY (`id`),
    KEY `idx_system_data_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统-数据';

system_oplog 表:

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`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统-日志';

system_config 表:

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`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统-配置';
Last Updated:
Contributors: 邹景立