Compare commits

...

4 Commits

Author SHA1 Message Date
Anyon
7b0a6253cb Update readme.md 2025-10-12 11:36:50 +08:00
Anyon
ca9c209415 Update readme.md 2025-10-12 11:35:53 +08:00
Anyon
3d90d91e77 fix: 更新项目描述 2025-10-12 11:06:22 +08:00
Anyon
7d6c9d5224 fix: 更新项目描述 2025-10-12 10:40:59 +08:00

913
readme.md
View File

@ -1,263 +1,800 @@
## 大道至简 · 原生框架
[![star](https://gitcode.com/ThinkAdmin/ThinkAdmin/star/badge.svg)](https://gitcode.com/ThinkAdmin/ThinkAdmin)
[![star](https://gitee.com/zoujingli/ThinkAdmin/badge/star.svg?theme=gvp)](https://gitee.com/zoujingli/ThinkAdmin)
# ThinkAdmin
[![Latest Stable Version](https://poser.pugx.org/zoujingli/thinkadmin/v/stable)](https://packagist.org/packages/zoujingli/thinkadmin)
[![Total Downloads](https://poser.pugx.org/zoujingli/thinkadmin/downloads)](https://packagist.org/packages/zoujingli/thinkadmin)
[![Monthly Downloads](https://poser.pugx.org/zoujingli/thinkadmin/d/monthly)](https://packagist.org/packages/zoujingli/thinkadmin)
[![Daily Downloads](https://poser.pugx.org/zoujingli/thinkadmin/d/daily)](https://packagist.org/packages/zoujingli/thinkadmin)
[![Monthly Downloads](https://poser.pugx.org/zoujingli/thinkadmin/d/monthly)](https://poser.pugx.org/zoujingli/thinkadmin)
[![Daily Downloads](https://poser.pugx.org/zoujingli/thinkadmin/d/daily)](https://poser.pugx.org/zoujingli/thinkadmin)
[![License](https://poser.pugx.org/zoujingli/thinkadmin/license)](https://packagist.org/packages/zoujingli/thinkadmin)
[![PHP Version](https://img.shields.io/badge/php-%3E%3D7.1-blue.svg)](https://www.php.net/)
[![ThinkPHP](https://img.shields.io/badge/ThinkPHP-6%20%7C%208-brightgreen.svg)](https://www.thinkphp.cn/)
### 项目介绍
基于 **ThinkPHP 6 & 8** 的现代化后台管理系统,采用 **Composer 插件定制**,提供完整的后台管理解决方案。系统遵循 **MIT** 开源协议,专为快速开发而设计,深度定制 Composer 插件,实现专属插件生态管理架构,可将应用模块封装成独立插件包。
**ThinkAdmin** 是一款遵循 **MIT** 协议免费开源的快速开发框架,基于最新版本 **ThinkPHP6** 的极简后台管理系统 ( 已兼容 **ThinkPHP8** ),在使用 **ThinkAdmin** 前请认真阅读[《免责声明》](https://thinkadmin.top/disclaimer)并同意该声明。
## 项目简介
当前 **ThinkAdmin** 的最新版本为[ **v6.1** ](https://gitee.com/zoujingli/ThinkAdmin/tree/v6.1),从这个版本开始正式进入插件时代,提供类似 **PaaS** 的组件升级更新服务,也可以本地化定制开发,基础组件及扩展插件统一使用 **Composer** 管理。**ThinkAdmin** 与传统 **ThinkPHP** 多应用模式无差别,用户可以自行开发自己的模块,此次升级可完美兼容 **ThinkAdmin v6.0** 应用,原 **ThinkAdmin v6.0** 只需安装 **ThinkPlugsAdmin** 组件即可升级到 **v6.1** 的插件模式
**ThinkAdmin** 是一个功能强大的后台管理系统,基于最新的 **ThinkPHP 6 & 8** 框架开发,专为简化后台管理流程而设计。系统采用现代化的技术栈,提供丰富的功能模块和插件生态,帮助开发者快速构建企业级后台管理系统
[//]: # (想要了解更多 **ThinkAdmin** 插件生态请阅读 [《ThinkAdmin 插件生态》](https://thinkadmin.top/guide/plugin.html))
### 核心优势
**[查看 ThinkAdmin v6.1 详细介绍请切换至 v6.1 分支](https://gitee.com/zoujingli/ThinkAdmin/tree/v6.1)**
- **🚀 快速开发** - 基于 ThinkPHP 6 & 8 框架,提供完整的后台管理功能,开箱即用
- **🔌 插件生态** - 支持 Composer 插件管理,可扩展性强,支持热插拔
- **⚡ 稳定可靠** - 经过多个项目实践验证,系统稳定,性能优异
- **🛡️ 安全完善** - 内置 RBAC 权限管理、操作日志、数据加密等安全机制
- **📚 文档齐全** - 提供完整的开发文档和使用指南,学习成本低
- **🚀 现代化架构** - 支持多应用模式、异步任务、文件存储等现代特性
**ThinkAdmin v6** 是基于 **v1**-**v5** 大版本的积累,经历了几次大的调整,结合 **ThinkPHP6** 的思维重新构建,减少大量原非必需的组件,自建存储层、服务层及队列任务机制,另外还增加了许多友好指令!当前 **v6** 版本已经通过了数个系统实践与测试,过程中不停调整与优化,目前系统模块及微信模块已经趋于稳定,现将系统管理 **`app/admin`** 及微信管理 **`app/wechat`** 定为 **v6** 内核两大模块并以 **MIT** 协议发布,后续可能还有其他模块及相关辅助模块更新发布,敬请期待……
### 适用场景
系统核心组件 **ThinkLibrary** 封装了大量常用操作以及多应用组件,可快速开发各种应用程序,且不影响原 **ThinkPHP** 生态,大大简化编码成本;可自行选择集成 **WechatDeveloper** 组件 ( 支持微信公众号、微信小程序、微信企业号、微信商户支付、支付宝支付等 ) 及 **QRcode** 二维码生成工具等。里面还内置了 **ThinkPHP6** 多应用组件并且完美支持路由文件存储支持本地服务器存储、自建Alist存储、七牛云对象存储支持CDN加速、又拍云USS存储支持CDN加速、阿里云OSS存储支持CDN加速、腾讯云COS存储支持CDN加速等存储方式自带异步任务处理机制可以并列多进程执行任务任务响应延时小于 **0.5** 秒,兼容 **windows****linux**
- **快速原型开发** - MVP 产品、概念验证、演示系统
- **企业管理系统** - CRM、ERP、OA、财务系统
- **SaaS 平台** - 多租户应用、订阅服务、API 管理
- **学习研究** - 技术学习、框架研究、最佳实践
使用 **ThinkAdmin** 需要掌握 **ThinkPHP**、**jQuery**、**LayUI**、**RequireJs** 等开发技能,后台 **UI** 界面基于最新版本的 **LayUI** 前端框架以及 **RequireJs** 组件加载方式,默认加载了所有 **LayUI** 的组件,框架中可以直接使用组件(独立页面需要注意 **js** 加载顺序哦),使用 **RequireJs** 加载插件,互联网上资源非常多,可自行下载进行二次扩展。目前后台大部分页面为单页程序,页面加载速度非常快速,也因此后台不再支持选项卡模式。
## 在线演示
我们致力于快速开发的底层框架,让项目开发变得更容易。框架提供完善的基础组件以及对应的 **API** 支持,基于此框架可以快速开发各种 **WEB** 应用。任何一个系统都不能完全满足所有的业务场景,**ThinkAdmin** 免费提供基础底层的功能,这里包括系统权限管理,系统存储配置,微信授权管理,以及其他常用功能集成等…… 因此 **ThinkAdmin** 也被大家定性为外包二开基线系统。目前已经有许多公司及个人在使用 **ThinkAdmin**,通过数据聚合统计已有 **5** 万多在线运行的项目。
- **演示地址**: [https://v6.thinkadmin.top](https://v6.thinkadmin.top)
- **默认账号**: admin
- **默认密码**: admin
#### 注意事项
## 特性
* **ThinkAdmin** 是基于国内最流行的 **ThinkPHP6** 框架开发,要求在不低于 **PHP 7.2.5** 的版本上运行,如果使用低版本的 **PHP** 可能会影响 **Composer** 依赖组件的安装,或将存在一定的安全隐患;
* 运行环境必需开启 **PATHINFO** 并将对应的 **rewrite** 规则配置到站点才能访问,系统已不再支持 **ThinkPHP****URL** 兼容模式运行 ( 源于如何优雅地展示 ),可以阅读 **ThinkAdmin** 的文档[安装部署](https://thinkadmin.top/guide/install.html)章节;
* 代码仓库下载的文件不包含 **Composer** 组件的 **vendor** 目录,下载后需要执行 **composer install** 安装依赖组件,同时会触发执行 **php think migrate:run** 安装数据库 **Phinx** 脚本,如需切换数据库只需要先配置再执行指令即可完成初始化安装数据;
* 为保持系统可持续在线升级,建议不要在 **app/admin**、**app/wechat** 、**public/static** 这三个目录创建或修改文件,可以自行创建其他模块再编写自己的业务代码,自定义样式及脚本可以放置在 **public/static/extra** 目录里面。
* 系统是基于严格类型 **PHP** 新特性开发,务必使用专业的 **IDE** ( 如:**PhpStorm**、**NetBeans**、**VsCode**、**Eclipse for PHP** 等 ) 进行项目开发以达到更好的体验与更高的效率!
- 🚀 **快速开发** - 基于 ThinkPHP 6 & 8开箱即用
- 🔌 **插件生态** - 支持 Composer 插件管理,热插拔
- 💾 **文件存储** - 支持多种存储方案,文件秒传
- 🔐 **权限管理** - 基于注解的 RBAC 权限控制
- ⚡ **异步任务** - 多进程异步任务处理
- 🛠️ **开发工具** - 丰富的开发工具和内置函数
- 📱 **响应式** - 基于 LayUI 2.x支持多设备
- 🌐 **多语言** - 支持多语言包管理
- 🔧 **易扩展** - 支持自定义插件开发
## 系统安装
## 环境要求
下载并进入 **ThinkAdmin** 根目录,运行指令安装依赖组件。
### 基础要求
打开命令行窗口( Windows 用户 )或控制台( Linux 和 Mac 用户 )并执行如下命令:
| 组件 | 最低要求 | 推荐版本 | 说明 |
|------|----------|----------|------|
| **PHP** | 7.1+ | 8.0+ | 支持最新 PHP 特性 |
| **Composer** | 2.0+ | 2.5+ | 包管理工具 |
| **数据库** | SQLite 3 | MySQL 8.0+ | 支持多种数据库 |
| **Web 服务器** | PHP 内置 | Nginx/Apache | 生产环境推荐 |
| **内存** | 128MB | 512MB+ | 推荐更大内存 |
| **磁盘空间** | 100MB | 1GB+ | 包含依赖和文件 |
**1. 通过 Composer 安装:**( 推荐方式,默认只安装 admin 模块 )
### 必需的 PHP 扩展
```shell
### 创建项目( 需要在英文目录下面执行
- `gd` - 图像处理
- `mbstring` - 多字节字符串处理
- `openssl` - 加密功能
- `pdo` - 数据库抽象层
- `curl` - HTTP 客户端
- `fileinfo` - 文件类型检测
- `json` - JSON 处理
- `zip` - 压缩文件处理
### 环境检测
在安装前,请确保您的环境满足以下要求:
```bash
# 检查 PHP 版本
php -v
# 检查 Composer
composer -v
# 检查 PHP 扩展
php -m | grep -E "(gd|mbstring|openssl|pdo|curl|fileinfo|json|zip)"
```
## 快速开始
### 快速安装体验
```bash
# 创建项目(需要在英文目录下执行,默认只安装 admin 和 static 模块)
composer create-project zoujingli/thinkadmin
### 进入项目根目录
# 进入项目根目录
cd thinkadmin
### 数据库初始化安装
### 系统默认使用 Sqlite 数据库
### 若使用其他数据库请修改 DB_ 相关的配置
copy .env.example .env
vi .env
#### 执行数据库初始化安装
# 数据库初始化并安装
# 默认使用 Sqlite 数据库,若使用其他数据库请修改配置后再执行
php think migrate:run
### 安装微信管理模块
# 安装微信管理模块(可选模块)
composer require zoujingli/think-plugs-wechat
### 开启PHP内置WEB服务
### 默认后台登录账号及密码都是 admin
# 🚀 开启 PHP 内置 WEB 服务
# 默认后台登录账号及密码都是 admin
php think run --host 127.0.0.1
```
**2. 通过源码安装:** 默认安装 admin、wechat 两个模块
### 访问系统
[//]: # (如果需要安装演示系统的旧版本 **data** 模块代码,请跳转到)
安装完成后,打开浏览器访问系统:
[//]: # (https://gitee.com/zoujingli/think-plugs-data)
| 访问地址 | 说明 | 默认账号 |
|---------|------|----------|
| `http://127.0.0.1:8000` | 系统首页 | - |
| `http://127.0.0.1:8000/admin` | 后台管理 | admin/admin |
| `http://127.0.0.1:8000/api` | API 接口 | - |
```shell
### 下载项目( 需要在英文目录下面执行
# git clone https://github.com/zoujingli/ThinkAdmin
git clone https://gitee.com/zoujingli/ThinkAdmin
### 首次使用指南
### 进入项目根目录
cd ThinkAdmin
1. **登录后台管理**
- 访问 `http://127.0.0.1:8000/admin`
- 使用默认账号 `admin` / `admin` 登录
### 安装项目依赖组件
composer install --optimize-autoloader
2. **修改默认密码**
- 进入"系统管理" → "用户管理"
- 修改管理员密码
### 数据库初始化安装
### 系统默认使用 Sqlite 数据库
### 若使用其他数据库请修改 DB_ 相关的配置
copy .env.example .env
vi .env
3. **配置系统参数**
- 进入"系统管理" → "系统参数配置"
- 设置网站名称、Logo 等基本信息
#### 执行数据库初始化安装
php think migrate:run
4. **创建业务模块**
- 使用代码生成器创建 CRUD 功能
- 开发自定义插件实现业务逻辑
### 开启PHP内置WEB服务
### 默认后台登录账号及密码都是 admin
php think run --host 127.0.0.1
```
### 安装 ThinkLibrary
## 数据库安装
ThinkAdmin 基于 ThinkLibrary 核心工具库,如需单独安装:
1. 创建空的数据库,其中 **Sqlite** 不需要创建;
2. 将数据库配置到 **config/database.php** 文件;
```bash
# 安装 ThinkLibrary
composer require zoujingli/think-library
注意:数据库参数修改,除了要修改连接参数,还需要切换 **default** 默认连接名称,如下面的 **mysql**、**sqlite** 等。
```php
return [
// 数据库类型
'default' => 'sqlite',
// 数据库连接参数
'connections' => [
'mysql' => [ /* 具体参数省略 */ ],
'sqlite' => [ /* 具体参数省略 */ ],
]
]
```
当前版本是 **ThinkAdmin v6.1** ,不需要导入数据库 `SQL` 脚本,修改数据库配置后执行 `php think migrate:run` 即可;
## 技术支持
开发前请认真阅读 ThinkPHP 官方文档,会对您有帮助哦!
本地开发请使用 `php think run` 运行服务,访问 `http://127.0.0.1:8000` 即可进入项目。
官方地址及开发指南https://thinkadmin.top ,如果实在无法解决问题,可以加入官方群免费交流。
**1.官方QQ交流群** 513350915
**2.官方QQ交流群** 866345568
**3.官方微信交流群**
<img alt="" src="https://thinkadmin.top/static/img/wx.png" width="250">
## 注解权限
注解权限是指通过方法注释来实现后台 **RBAC** 授权管理,用注解来管理功能节点。
开发人员只需要写好注释,会自动生成功能的节点,只需要配置角色及用户就可以使用 **RBAC** 权限。
* 此版本的权限使用注解实现
* 注释必须是标准的块注释,案例如下展示
* 其中 `@auth true` 表示访问需要权限验证
* 其中 `@menu true` 菜单编辑显示可选节点
* 其中 `@login true` 需要强制登录才可访问
```php
/**
* 操作的名称
* @auth true # 表示访问需要权限验证
* @menu true # 菜单编辑显示可选节点
* @login true # 需要强制登录才可访问
*/
public function index(){
// @todo
# 确保控制器继承自 think\admin\Controller
class MyController extends \think\admin\Controller {
protected $dbQuery = '数据表名';
// 使用 ThinkLibrary 提供的功能
}
```
## 代码仓库
## 核心功能
我们的代码仓库已移至 **Github**,而 **Gitee** 则仅作为国内镜像仓库,方便广大开发者获取和使用。若想提交 **PR****ISSUE** 请在 [ThinkAdminDeveloper](https://github.com/zoujingli/ThinkAdminDeveloper) 仓库进行操作,如果在其他仓库操作或提交问题将无法处理!
### 🚀 自由扩展的组件生态
部分代码来自互联网,若有异议可以联系作者进行删除
基于最新 ThinkPHP 框架开发,遵循 Composer 标准管理依赖组件,可自由安装各种开源组件及插件生态程序。系统将功能模块封装为独立的插件包,支持通过 Composer 进行安装和更新,让开发者可以根据项目需求选择性地安装所需的功能模块。
* 在线体验地址https://v6.thinkadmin.top (账号和密码都是 admin
* Gitee 仓库地址https://gitee.com/zoujingli/ThinkAdmin
* Github 仓库地址https://github.com/zoujingli/ThinkAdmin
* Gitcode 仓库地址https://gitcode.com/ThinkAdmin/ThinkAdmin
### 💾 标准化文件存储引擎
## 框架指令
支持本地存储、自建 Alist 存储、多种云存储,基于文件 HASH 实现文件秒传,节省服务器空间。提供统一的文件存储引擎,支持多种存储方案,满足不同场景下的数据存储需求。
* 执行 `php think run` 启用本地开发环境,访问 `http://127.0.0.1:8000`
* 执行 `php think xadmin:package` 将现有 `MySQL` 数据库打包为 `Phinx` 数据库脚本
* 执行 `php think xadmin:sysmenu` 重写系统菜单并生成新编号,同时会清理已禁用的菜单数据
* 执行 `php think xadmin:fansall` 同步微信粉丝数据,依赖于 `ThinkPlugsWechat` 应用插件
* 执行 `php think xadmin:replace` 可以批量替换数据库指定字符字段内容,通常用于文件地址替换
* 执行 `php think xadmin:database` 对数据库的所有表 `repair|optimize` 操作,优化并整理数据库碎片
* 执行 `php think xadmin:publish` 可自动安装现在模块或已安装应用插件,增加 `--migrate` 参数执行数据库脚本
**支持的存储方案**:
- 本地服务器存储
- 自建 Alist 存储
- 七牛云空间存储
- 阿里云 OSS 存储
- 腾讯云 COS 存储
- 又拍云 USS 存储
#### 1. 任务进程管理(可自建定时任务去守护监听主进程)
### 🔐 注解 RBAC 权限管理
* 执行 `php think xadmin:queue listen` [监听]启动异步任务监听服务
* 执行 `php think xadmin:queue start` [控制]检查创建任务监听服务(建议定时任务执行)
* 执行 `php think xadmin:queue query` [控制]查询当前任务相关的进程
* 执行 `php think xadmin:queue status` [控制]查看异步任务监听状态
* 执行 `php think xadmin:queue stop` [控制]平滑停止所有任务进程
通过控制器方法注释实现功能节点自动生成,配合后台权限管理实现最简注解权限控制。系统实现了基于注解的简化 RBAC 权限模型,支持精确到按钮级别的权限控制。
#### 2. 本地调试管理(可自建定时任务去守护监听主进程)
**权限系统特点**:
- **注解驱动** - 通过控制器注释自动生成权限节点,简化权限配置
- **精确控制** - 权限控制精确到按钮级别,提供最大灵活性
- **自动维护** - 功能节点由系统自动维护,根据控制器代码注释进行刷新
- **动态菜单** - 根据用户权限动态显示功能菜单,支持三级菜单结构
- **操作日志** - 完整记录用户操作行为,支持安全审计
* 执行 `php think xadmin:queue webstop` [调试]停止本地调试服务
* 执行 `php think xadmin:queue webstart` [调试]开启本地调试服务(建议定时任务执行)
* 执行 `php think xadmin:queue webstatus` [调试]查看本地调试状态
### 🔧 可升级 Composer 插件微架构
## 问题修复
深度定制 Composer 插件,实现专属插件生态管理架构,可将应用模块封装成独立插件包。系统强制要求使用插件架构,所有业务功能都必须通过自定义插件实现。
* 增加 **CORS** 跨域规则配置,配置参数置放于 `config/app.php`,需要更新 `ThinkLibrary`
* 修复 `layui.table` 导致基于 `ThinkPHP` 模板输出自动转义 `XSS` 过滤机制失效,需要更新 `ThinkLibrary`
* 修复在模板中使用 `{:input(NAME)}` 取值而产生的 `XSS` 问题,模板取值更换为 `{$get.NAME|default=''}`
* 修复 `CKEDITOR` 配置文件,禁用所有标签的 `on` 事件,阻止 `xss` 脚本注入,需要更新 `ckeditor/config.js`
* 修复文件上传入口的后缀验证,读取真实文件后缀与配置对比,阻止不合法的文件上传并存储到本地服务器。
* 修改 `JsonRpc` 接口异常处理机制,当服务端绑定 `Exception` 时,客户端将能收到 `error` 消息及异常数据。
* 修改 `location.hash` 访问机制,禁止直接访问外部 `URL` 资源链接,防止外部 `XSS` 攻击读取本地缓存数据。
* 增加后台主题样式配置,支持全局默认+用户个性配置,需要更新 `admin`, `static`, `ThinkLibrary` 组件及模块。
* 后台行政区域数据更新,由原来的腾讯地图数据切换为百度地图最新数据,需要更新 `static`,数据库版需另行更新。
### ⚡ 独立进程异步执行任务
## 版权信息
兼容多平台动态创建 PHP 进程,并列启动多个独立任务进程处理大数据或长时性任务,实时显示执行进度。支持多进程异步任务处理,显著提高任务处理效率。
[**ThinkAdmin**](https://thinkadmin.top) 遵循 [**MIT**](license) 开源协议发布,并免费提供使用。
**任务系统特性**:
- **多进程架构** - 支持多进程并发执行任务,提高处理效率
- **跨平台支持** - 兼容 Windows 和 Linux 系统
- **自动监控** - 每 0.5 秒扫描任务数据表,自动执行待处理任务
- **进程管理** - 支持 START、STOP、QUERY、LISTEN 等进程管理指令
- **进度跟踪** - 支持任务完成状态跟进和进度显示
- **异常恢复** - 支持自动重启和异常处理
- **守护进程** - 支持后台守护进程模式运行
本项目包含的第三方源码和二进制文件的版权信息另行标注。
### 🛠️ 常用操作及工具库封装
版权所有 Copyright © 2014-2023 by ThinkAdmin (https://thinkadmin.top) All rights reserved。
核心组件封装各种常用 CRUD 操作及工具库,快速实现数据增删改查,后台 UI 基于最新 Layui 构建。基于 ThinkLibrary 核心工具库,提供完整的 CRUD 操作和一系列常用工具
更多细节参阅 [`LISENSE`](license) 文件
**核心功能模块**:
1. **数据列表展示组件** - 展示数据列表,支持分页、排序和高级搜索
2. **表单处理模块** - 用于创建、展示和提交表单数据,完善的表单验证和错误处理机制
3. **数据状态快速处理模块** - 根据业务需求快速更新数据状态,支持多字段同时更新
4. **数据安全删除模块** - 安全删除数据,支持软删除和硬删除
5. **文件存储通用组件** - 支持多种文件存储方式,统一接口和配置
6. **通用数据保存更新模块** - 基于 key 和条件判断数据存在性,进行更新或新增
7. **通用网络请求模块** - 支持 GET、POST 和 PUT 请求,统一接口
8. **系统参数配置模块** - 快速配置并保存系统参数
9. **UTF-8 加密算法支持** - 提供 UTF-8 字符串加密和解密功能
10. **接口 CORS 跨域支持** - 默认支持跨域请求,输出标准化 JSON 数据
11. **表单 CSRF 安全验证** - 自动为表单添加 CSRF 安全验证字段
## 历史版本
## 核心功能详解
以下系统的体验账号及密码都是 admin
### 插件生态架构
### ThinkAdmin v6 基于 ThinkPHP 6.0 开发(后台权限基于注解实现)
基于 Composer 标准管理依赖组件,支持插件热插拔和在线升级。
* 在线体验地址https://v6.thinkadmin.top (运行中)
* Gitee 代码地址https://gitee.com/zoujingli/ThinkAdmin/tree/v6
* Github 代码地址https://github.com/zoujingli/ThinkAdmin/tree/v6
* Gitcode 仓库地址https://gitcode.com/ThinkAdmin/ThinkAdmin/tree/v6
```php
<?php
namespace app\plugin\example;
### ThinkAdmin v5 基于 ThinkPHP 5.1 开发(后台权限基于注解实现)
use think\admin\Plugin;
* 在线体验地址https://v5.thinkadmin.top (已停用)
* Gitee 代码地址https://gitee.com/zoujingli/ThinkAdmin/tree/v5
* Github 代码地址https://github.com/zoujingli/ThinkAdmin/tree/v5
* Gitcode 仓库地址https://gitcode.com/ThinkAdmin/ThinkAdmin/tree/v5
class ExamplePlugin extends Plugin
{
public function install()
{
// 安装插件时的操作
$this->createTables();
$this->createMenus();
}
public function uninstall()
{
// 卸载插件时的操作
$this->dropTables();
$this->removeMenus();
}
}
```
### ThinkAdmin v4 基于 ThinkPHP 5.1 开发(不建议继续使用)
### 注解权限管理
* 在线体验地址https://v4.thinkadmin.top (已停用)
* Gitee 代码地址https://gitee.com/zoujingli/ThinkAdmin/tree/v4
* Github 代码地址https://github.com/zoujingli/ThinkAdmin/tree/v4
* Gitcode 仓库地址https://gitcode.com/ThinkAdmin/ThinkAdmin/tree/v4
通过控制器方法注释实现功能节点自动生成,简化权限配置。
### ThinkAdmin v3 基于 ThinkPHP 5.1 开发(不建议继续使用)
```php
<?php
namespace app\admin\controller;
* 在线体验地址https://v3.thinkadmin.top (已停用)
* Gitee 代码地址https://gitee.com/zoujingli/ThinkAdmin/tree/v3
* Github 代码地址https://github.com/zoujingli/ThinkAdmin/tree/v3
* Gitcode 仓库地址https://gitcode.com/ThinkAdmin/ThinkAdmin/tree/v3
use think\admin\Controller;
### ThinkAdmin v2 基于 ThinkPHP 5.0 开发(不建议继续使用)
class UserController extends Controller
{
/**
* 用户列表
* @auth true
* @menu true
*/
public function index()
{
$this->title = '用户管理';
$this->_query('SystemUser')
->like('username,nickname,phone')
->equal('status')
->dateBetween('create_at')
->order('id desc')
->page();
}
}
```
* 在线体验地址https://v2.thinkadmin.top (已停用)
* Gitee 代码地址https://gitee.com/zoujingli/ThinkAdmin/tree/v2
* Github 代码地址https://github.com/zoujingli/ThinkAdmin/tree/v2
* Gitcode 仓库地址https://gitcode.com/ThinkAdmin/ThinkAdmin/tree/v2
### 文件存储系统
### ThinkAdmin v1 基于 ThinkPHP 5.0 开发(不建议继续使用)
支持多种存储方案,基于文件 HASH 实现文件秒传。
* 在线体验地址https://v1.thinkadmin.top (已停用)
* Gitee 代码地址https://gitee.com/zoujingli/ThinkAdmin/tree/v1
* Github 代码地址https://github.com/zoujingli/ThinkAdmin/tree/v1
* Gitcode 仓库地址https://gitcode.com/ThinkAdmin/ThinkAdmin/tree/v1
```php
<?php
namespace app\admin\service;
use think\admin\Storage;
class FileService
{
public function upload($file, $type = 'local')
{
$storage = Storage::instance($type);
// 文件去重检查
$hash = md5_file($file->getPathname());
$exists = $this->checkFileExists($hash);
if ($exists) {
return $exists['url'];
}
// 上传文件
$result = $storage->upload($file);
return $result['url'];
}
}
```
### 异步任务系统
支持多进程异步任务处理,实时显示执行进度。
```php
<?php
namespace app\admin\service;
use think\admin\service\QueueService;
class TaskService
{
// 注册邮件发送任务
public function sendEmail($to, $subject, $content)
{
$name = "发送邮件到 {$to}";
$command = "xadmin:service email {$to} {$subject}";
return QueueService::register($name, $command, 0);
}
}
// 邮件队列处理类
class EmailQueue extends QueueService
{
public function execute(array $data = [])
{
$this->setQueueProgress('开始发送邮件...', 10.00);
try {
// 发送邮件逻辑
$result = $this->sendMail($data['to'], $data['subject'], $data['content']);
if ($result) {
$this->setQueueProgress('邮件发送成功', 100.00);
$this->setQueueSuccess('邮件发送成功');
} else {
$this->setQueueError('邮件发送失败');
}
} catch (\Exception $e) {
$this->setQueueError('邮件发送异常: ' . $e->getMessage());
}
}
}
```
### 开发工具
基于 ThinkLibrary 核心工具库,提供完整的 CRUD 操作。
```php
<?php
namespace app\admin\controller;
use think\admin\Controller;
class ProductController extends Controller
{
protected $dbQuery = 'Product';
public function index()
{
$this->title = '商品管理';
$this->_query($this->dbQuery)
->like('name,description')
->equal('category_id,status')
->dateBetween('create_at')
->order('id desc')
->page();
}
public function add()
{
$this->title = '添加商品';
$this->_form($this->dbQuery, 'form');
}
public function save()
{
$this->_save($this->dbQuery, $this->_vali([
'status.require' => '状态不能为空',
'status.in:0,1' => '状态值无效'
]));
}
}
```
## 技术栈
### 后端技术
ThinkAdmin 基于 **ThinkPHP 6 & 8** 框架开发,支持 **PHP 7.1+** 版本,充分利用现代 PHP 特性:
- **框架版本**: ThinkPHP 6 & 8 (支持最新 PHP 8.x)
- **核心依赖**: ThinkLibrary v6.1+ (核心工具库)
- **插件生态**: ThinkPlugsAdmin v1.0+ (后台管理)、ThinkPlugsWechat v1.0+ (微信管理)
- **数据库支持**: MySQL、PostgreSQL、SQLite、SQL Server
- **ORM 支持**: ThinkORM 2.0+,支持模型关联、查询构建器
- **缓存系统**: Redis、Memcached、文件缓存
- **队列系统**: 支持异步任务处理
- **数据库迁移**: 使用 Phinx 进行版本控制
- **多语言支持**: 支持全局、应用、动态三种语言包类型
- **路由管理**: 支持全局路由和应用路由,模块化管理
- **运行模式**: 支持开发模式和生产模式切换
- **内置函数**: 提供 20+ 个内置函数,简化开发流程
### 前端技术
前端采用现代化的技术栈,提供良好的用户体验和开发体验:
- **UI 框架**: LayUI 2.x (轻量级、响应式)
- **模块管理**: RequireJS (按需加载)
- **图表组件**: ECharts (数据可视化)
- **富文本编辑**: CKEditor (内容编辑)
- **图标字体**: Font Awesome (图标系统)
- **响应式设计**: 支持移动端和桌面端
- **表格组件**: LayUI Table 组件,支持动态高度、搜索绑定
- **表单组件**: 支持自动提交、数据验证
- **弹层组件**: LayUI Layer 弹层组件
- **工具函数**: 内置 jQuery 扩展和工具函数
### 第三方集成
系统提供了丰富的第三方服务集成,支持主流云服务和平台:
- **云存储**: 七牛云、阿里云 OSS、腾讯云 COS、又拍云 USS、自建 Alist 存储
- **微信生态**: 公众号管理、小程序管理、微信支付、用户管理、素材管理
- **支付集成**: 微信支付、支付宝等主流支付方式
- **消息推送**: 邮件发送、短信发送等基础消息推送功能
## 插件生态
ThinkAdmin 采用 Composer 插件定制架构,提供丰富的插件生态:
### 核心插件
- **ThinkLibrary v6.1+** - 核心工具库,提供完整的 CRUD 操作和一系列常用工具,特别注重多应用支持
- **ThinkPlugsAdmin v1.0+** - 后台基础管理模块,提供用户、权限、菜单、系统配置等核心功能
- **ThinkPlugsWechat v1.0+** - 微信平台管理,支持公众号、小程序、微信支付等完整功能
### 扩展插件
- **ThinkPlugsAccount** - 账号管理插件
- **ThinkPlugsPayment** - 支付管理插件
- **ThinkPlugsWorker** - 高性能 Worker 运行插件
- **ThinkPlugsStatic** - 静态资源管理插件
### 插件特点
- **热插拔** - 支持插件的动态安装和卸载
- **统一管理** - 通过 Composer 进行插件依赖管理
- **本地化开发** - 支持插件本地化定制开发
- **版本控制** - 支持插件版本管理和更新
### 插件开发
系统强制要求使用插件架构,所有业务功能都必须通过自定义插件实现。开发者必须基于统一的插件接口规范开发自定义插件来实现具体的业务功能。
**插件开发示例**:
```php
<?php
namespace app\plugin\example;
use think\admin\Plugin;
class ExamplePlugin extends Plugin
{
public function install()
{
// 安装插件时的操作
$this->createTables();
$this->createMenus();
}
public function uninstall()
{
// 卸载插件时的操作
$this->dropTables();
$this->removeMenus();
}
}
```
## 数据库配置
### SQLite (默认)
```php
// config/database.php
return [
'default' => 'sqlite',
'connections' => [
'sqlite' => [
'type' => 'sqlite',
'database' => 'database/sqlite.db',
],
]
];
```
### MySQL
```php
// config/database.php
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'type' => 'mysql',
'hostname' => '127.0.0.1',
'database' => 'thinkadmin',
'username' => 'root',
'password' => 'your_password',
'hostport' => '3306',
'charset' => 'utf8mb4',
],
]
];
```
## 系统命令
```bash
# 启动开发服务器
php think run --host 127.0.0.1 --port 8000
# 数据库迁移
php think migrate:run
# 清除缓存
php think clear
# 异步任务管理
php think xadmin:queue start # 启动守护进程
php think xadmin:queue stop # 停止进程
php think xadmin:queue query # 查询任务
php think xadmin:queue listen # 监听进程
```
## 开发指南
### 创建控制器
```php
<?php
namespace app\admin\controller;
use think\admin\Controller;
class MyController extends Controller
{
/**
* 我的页面
* @auth true
* @menu true
*/
public function index()
{
$this->title = '我的页面';
$this->fetch();
}
}
```
### 权限控制
```php
/**
* 需要权限验证的方法
* @auth true # 需要权限验证
* @menu true # 添加到菜单
* @login true # 需要登录
*/
public function myMethod()
{
// 方法内容
}
```
### 数据操作
```php
// 查询数据
$this->_query('user')
->like('username,email')
->equal('status')
->dateBetween('create_time')
->order('id desc')
->page();
// 表单处理
$this->_form('user', 'form');
// 状态更新
$this->_save('user', $this->_vali([
'status.require' => '状态不能为空',
'status.in:0,1' => '状态值无效'
]));
```
## 常见问题
### 安装部署
**Q: 安装时提示 Composer 错误怎么办?**
A: 请检查以下几点:
1. **PHP 版本**: 确保 PHP 版本 ≥ 7.1
2. **Composer 版本**: 执行 `composer self-update` 更新到最新版本
3. **网络问题**: 如果网络不稳定,可以配置国内镜像
**Q: 数据库初始化失败怎么办?**
A: 请检查:
1. **数据库配置**: 检查 `config/database.php` 配置是否正确
2. **数据库权限**: 确保数据库用户有创建表的权限
3. **数据库连接**: 测试数据库连接是否正常
**Q: 无法访问后台管理页面?**
A: 可能的原因:
1. **URL 路径**: 确保访问的是 `/admin``/admin.html`
2. **Web 服务器配置**: 检查伪静态规则是否正确配置
3. **PHP 扩展**: 确保安装了必要的 PHP 扩展
### 功能使用
**Q: 如何修改后台登录入口?**
A: 在后台 **系统管理****系统参数配置** 中修改:
1. 找到"后台入口地址"配置项
2. 设置新的入口地址(如:`/myadmin`
3. 保存配置,原入口将自动失效
**Q: 文件上传失败怎么办?**
A: 检查以下配置:
1. **上传目录权限**: 确保 `public/upload` 目录可写
2. **PHP 配置**: 检查 `upload_max_filesize``post_max_size`
3. **系统参数**: 在后台配置正确的文件上传参数
**Q: 如何添加自定义菜单?**
A: 在后台 **系统管理****菜单管理** 中:
1. 点击"添加菜单"
2. 填写菜单名称和链接地址
3. 选择父级菜单
4. 设置菜单图标和排序
### 开发相关
**Q: 如何创建新的控制器?**
A: 在 `app/admin/controller/` 目录下创建控制器文件,继承 `think\admin\Controller`
**Q: 如何添加权限控制?**
A: 在控制器方法上添加注释:`@auth true``@menu true``@login true`
**Q: 如何自定义主题样式?**
A: 可以通过以下方式自定义:
1. **CSS 文件**: 在 `public/static/css/` 目录下添加自定义样式
2. **系统参数**: 在后台配置主题相关参数
3. **模板文件**: 修改 `app/admin/view/` 下的模板文件
### 插件相关
**Q: 如何安装插件?**
A: 使用 Composer 安装:
```bash
# 安装免费插件
composer require zoujingli/think-plugs-wechat
# 安装付费插件(需要授权)
composer require zoujingli/think-plugs-account
```
**Q: 插件安装后没有显示怎么办?**
A: 检查以下几点:
1. **插件状态**: 在后台插件管理中查看插件状态
2. **权限配置**: 确保当前用户有访问插件的权限
3. **缓存清理**: 清除系统缓存后重新访问
**Q: 如何卸载插件?**
A: 使用 Composer 卸载:
```bash
composer remove zoujingli/plugin-name
```
**注意**: 卸载插件不会自动删除相关数据表,需要手动清理。
### 性能优化
**Q: 系统运行缓慢怎么办?**
A: 可以尝试以下优化:
1. **开启缓存**: 在后台切换到生产模式
2. **数据库优化**: 为常用查询字段添加索引
3. **文件存储**: 使用云存储提升文件访问速度
4. **服务器配置**: 优化 PHP 和 Web 服务器配置
**Q: 如何开启生产模式?**
A: 在后台 **系统管理****系统参数配置** 中:
1. 找到"运行模式"配置项
2. 选择"生产模式"
3. 保存配置并清理缓存
### 错误排查
**Q: 页面显示 500 错误?**
A: 检查以下内容:
1. **错误日志**: 查看 `runtime/log/` 目录下的错误日志
2. **PHP 错误**: 检查 PHP 错误日志
3. **权限问题**: 确保目录权限正确
4. **配置问题**: 检查配置文件是否正确
**Q: 数据库连接失败?**
A: 检查数据库配置:
1. **连接参数**: 检查 `config/database.php` 中的连接参数
2. **数据库服务**: 确保数据库服务正在运行
3. **网络连接**: 检查网络连接是否正常
4. **用户权限**: 确保数据库用户有相应权限
## 贡献
我们欢迎所有形式的贡献,包括但不限于:
### 如何贡献
1. **报告问题**
- 在 [GitHub Issues](https://github.com/zoujingli/ThinkAdmin/issues) 或 [Gitee Issues](https://gitee.com/zoujingli/ThinkAdmin/issues) 报告 Bug
- 提供详细的问题描述和复现步骤
- 包含系统环境信息
2. **提交代码**
- Fork 项目到您的 GitHub 账户
- 创建功能分支:`git checkout -b feature/AmazingFeature`
- 提交更改:`git commit -m 'Add some AmazingFeature'`
- 推送分支:`git push origin feature/AmazingFeature`
- 创建 Pull Request
3. **改进文档**
- 完善 README 文档
- 添加使用示例
- 翻译文档到其他语言
4. **分享经验**
- 分享使用心得
- 编写教程文章
- 参与社区讨论
### 开发计划
- [ ] 支持更多数据库类型
- [ ] 优化前端界面
- [ ] 增加更多插件
- [ ] 完善 API 文档
- [ ] 支持 Docker 部署
### 社区支持
- **GitHub**: [https://github.com/zoujingli/ThinkAdmin](https://github.com/zoujingli/ThinkAdmin)
- **Gitee**: [https://gitee.com/zoujingli/ThinkAdmin](https://gitee.com/zoujingli/ThinkAdmin)
- **官方网站**: [https://thinkadmin.top](https://thinkadmin.top)
- **在线演示**: [https://v6.thinkadmin.top](https://v6.thinkadmin.top)
- **技术交流群**: 请访问官网获取群号
### 赞助支持
如果这个项目对您有帮助,欢迎通过以下方式支持我们:
- ⭐ Star 项目
- 🍴 Fork 项目
- 📢 分享给更多人
- 💰 赞助开发(请访问官网了解详情)
## 许可证
本项目基于 [MIT](https://mit-license.org) 许可证开源。
## 版权
版权所有 Copyright © 2018-2025 by ThinkAdmin (https://thinkadmin.top) All rights reserved.
**备案信息**: [粤ICP备16006642号](https://beian.miit.gov.cn)
---
**提示**: 遇到问题时,建议先查看错误日志,大多数问题都能通过日志找到原因。