ThinkLibrary
ThinkLibrary 是一个针对 ThinkPHP 6 & 8 的封装库,提供完整的 CRUD(创建、读取、更新、删除)操作和一系列常用工具。特别注重多应用支持,方便开发者使用。前端代码的主仓库位于 Gitee,而 GitHub 则作为镜像仓库发布 Composer 包。
功能说明
数据列表展示组件
- 功能:展示数据列表,支持分页、排序和高级搜索。
- 优化点:提供用户友好的界面,确保数据准确和实时更新。
- 高级特性:多排序方式、自定义搜索字段。
表单处理模块
- 功能:用于创建、展示和提交表单数据。
- 优化点:完善的表单验证和错误处理机制。
- 高级特性:支持动态表单生成和多种验证规则。
数据状态快速处理模块
- 功能:根据业务需求快速更新数据状态。
- 优化点:简洁接口,支持多字段同时更新。
- 高级特性:条件判断和事务处理,确保数据一致性。
数据安全删除模块
- 功能:安全删除数据,支持软删除和硬删除。
- 优化点:自动软删除配置和标记字段。
- 高级特性:支持条件软删除。
文件存储通用组件
- 功能:支持多种文件存储方式(本地服务存储、云存储等)。
- 优化点:统一接口和配置,快速集成。
- 高级特性:文件上传、下载、删除和版本控制。
通用数据保存更新模块
- 功能:基于 key 和条件判断数据存在性,进行更新或新增。
- 优化点:简洁接口,减少冗余代码。
- 高级特性:支持乐观锁和悲观锁,确保数据一致性。
通用网络请求模块
- 功能:支持 GET、POST 和 PUT 请求。
- 优化点:统一接口,方便配置请求参数。
- 高级特性:请求重试、超时设置、异常捕获等。
系统参数配置模块
- 功能:快速配置并保存系统参数。
- 优化点:简洁操作,方便参数管理。
- 高级特性:支持参数加密、权限控制、日志记录。
UTF-8 加密算法支持
- 功能:提供 UTF-8 字符串加密和解密功能。
- 优化点:增强加密安全性。
- 高级特性:多加密算法、密钥管理。
接口 CORS 跨域支持
- 功能:默认支持跨域请求,输出标准化 JSON 数据。
- 优化点:自动处理跨域问题,减少开发工作量。
- 高级特性:支持定制化响应头和跨域请求限制。
表单 CSRF 安全验证
- 功能:自动为表单添加 CSRF 安全验证字段。
- 优化点:简化开发流程,增强表单安全性。
- 高级特性:自定义验证规则和多种验证方式。
参考项目
- ThinkAdmin - V6
- Gitee 仓库:ThinkAdmin
- GitHub 仓库:ThinkAdmin
- 体验地址(账号和密码:
admin
):体验地址
代码仓库
ThinkLibrary 遵循 MIT 开源协议发布,免费使用。部分代码来源于互联网,若有异议可联系作者删除。
- 在线体验地址:体验地址(账号和密码:
admin
) - Gitee 仓库:ThinkLibrary
- GitHub 仓库:ThinkLibrary
加入我们
我们的代码仓库已移至 Github,而 Gitee 仅作为国内镜像仓库,便于开发者访问。若想提交 PR 或 ISSUE,请在 ThinkAdminDeveloper 仓库操作,其他仓库的提交将无法处理。
使用说明
- 依赖管理:ThinkLibrary 需要 Composer 支持进行安装和依赖管理。
- 安装指南:使用以下命令安装 ThinkLibrary:
composer require zoujingli/think-library
- 使用示例:在使用时,确保控制器继承自
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='系统-配置';