ThinkAdmin/readme.md
2025-10-12 10:40:59 +08:00

20 KiB
Raw Blame History

🚀 ThinkAdmin v6.1 - 现代化后台管理系统

star star

Latest Stable Version Total Downloads Monthly Downloads Daily Downloads License

📖 项目介绍

ThinkAdmin v6.1 是一款基于 ThinkPHP 6 & 8 的现代化后台管理系统,遵循 MIT 开源协议,专为快速开发而设计。系统采用全新的 PaaS 插件架构,提供类似 PaaS 的组件升级更新服务,支持本地化定制开发。

🌟 核心特性

  • 🚀 自由扩展的组件生态 - 基于最新 ThinkPHP 框架开发,遵循 Composer 标准管理依赖组件,可自由安装各种开源组件及插件生态程序
  • 💾 标准化文件存储引擎 - 支持本地存储、自建 Alist 存储、多种云存储,基于文件 HASH 实现文件秒传,节省服务器空间
  • 🔐 注解 RBAC 权限管理 - 通过控制器方法注释实现功能节点自动生成,配合后台权限管理实现最简注解权限控制
  • 🔧 可升级 PaaS 插件微架构 - 深度定制 Composer 插件,实现专属 PaaS 插件生态管理架构,可将应用模块封装成独立插件包
  • 独立进程异步执行任务 - 兼容多平台动态创建 PHP 进程,并列启动多个独立任务进程处理大数据或长时性任务,实时显示执行进度
  • 🛠️ 常用操作及工具库封装 - 核心组件封装各种常用 CRUD 操作及工具库,快速实现数据增删改查,后台 UI 基于最新 Layui 构建

🎯 适用场景

  • 快速原型开发 - 5 分钟内搭建完整后台管理系统
  • 企业级应用 - 提供完整的权限管理和系统配置
  • SaaS 平台开发 - 支持多租户和插件扩展
  • 学习研究 - 学习现代化后台管理系统开发
  • 商业项目 - 快速交付高质量的后台管理功能

🔧 技术栈

  • 后端框架: ThinkPHP 6 & 8
  • 前端框架: LayUI + RequireJS
  • 数据库: 支持 MySQL、PostgreSQL、SQLite
  • 缓存: 支持 Redis、文件缓存
  • 存储: 本地存储、云存储(七牛云、阿里云、腾讯云等)
  • 队列: 自建异步任务处理机制

📊 项目统计

  • 在线运行项目: 50,000+
  • GitHub Stars: 持续增长中
  • 社区活跃度: 高活跃度开发社区
  • 更新频率: 定期更新和功能增强

注意事项

  • ThinkAdmin 是基于国内最流行的 ThinkPHP6 框架开发,要求在不低于 PHP 7.2.5 的版本上运行,如果使用低版本的 PHP 可能会影响 Composer 依赖组件的安装,或将存在一定的安全隐患;
  • 运行环境必需开启 PATHINFO 并将对应的 rewrite 规则配置到站点才能访问,系统已不再支持 ThinkPHPURL 兼容模式运行 ( 源于如何优雅地展示 ),可以阅读 ThinkAdmin 的文档安装部署章节;
  • 代码仓库下载的文件不包含 Composer 组件的 vendor 目录,下载后需要执行 composer install 安装依赖组件,同时会触发执行 php think migrate:run 安装数据库 Phinx 脚本,如需切换数据库只需要先配置再执行指令即可完成初始化安装数据;
  • 为保持系统可持续在线升级,建议不要在 app/adminapp/wechatpublic/static 这三个目录创建或修改文件,可以自行创建其他模块再编写自己的业务代码,自定义样式及脚本可以放置在 public/static/extra 目录里面。
  • 系统是基于严格类型 PHP 新特性开发,务必使用专业的 IDE ( 如:PhpStormNetBeansVsCodeEclipse for PHP 等 ) 进行项目开发以达到更好的体验与更高的效率!

🚀 快速开始

⚙️ 环境要求

  • PHP 版本: 7.1 或更高版本(推荐 PHP 8.0+
  • Composer: 必须安装 Composer 包管理工具
  • 数据库: 支持 Sqlite、MySQL 和 SQL Server
  • Web 服务器: Apache、Nginx 或 PHP 内置服务器

📦 一键安装

方式一Composer 安装(推荐)

# 创建项目(需要在英文目录下执行)
composer create-project zoujingli/thinkadmin my-project

# 进入项目目录
cd my-project

# 数据库初始化(默认使用 Sqlite
php think migrate:run

# 安装微信管理模块(可选)
composer require zoujingli/think-plugs-wechat

# 启动内置服务器
php think run --host 127.0.0.1 --port 8000

方式二:源码安装

# 下载项目(需要在英文目录下执行)
git clone https://gitee.com/zoujingli/ThinkAdmin
cd ThinkAdmin

# 安装项目依赖组件
composer install --optimize-autoloader

# 数据库初始化(默认使用 Sqlite
php think migrate:run

# 启动内置服务器
php think run --host 127.0.0.1 --port 8000

🌐 访问系统

打开浏览器访问:http://127.0.0.1:8000

  • 后台管理: http://127.0.0.1:8000/admin
  • 默认账号: admin
  • 默认密码: admin

🔧 基础配置

  1. 系统参数配置

    • 登录后台 → 系统管理 → 系统参数配置
    • 设置网站名称、文件上传参数等
  2. 用户管理

    • 修改默认管理员密码
    • 创建新的管理员账号
  3. 菜单管理

    • 查看系统菜单结构
    • 添加自定义菜单

🗄️ 数据库配置

支持的数据库

  • SQLite(默认)- 无需额外配置,开箱即用
  • MySQL - 推荐用于生产环境
  • PostgreSQL - 支持企业级应用
  • SQL Server - 支持 Windows 环境

数据库配置

使用 SQLite默认推荐开发环境

无需额外配置,系统默认使用 SQLite 数据库,开箱即用。

使用 MySQL推荐生产环境

  1. 创建数据库
CREATE DATABASE thinkadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 修改配置文件 config/database.php
return [
    // 数据库类型 - 修改为 mysql
    'default' => 'mysql',
    // 数据库连接参数
    'connections' => [
        'mysql' => [
            'type' => 'mysql',
            'hostname' => '127.0.0.1',
            'database' => 'thinkadmin',
            'username' => 'root',
            'password' => 'your_password',
            'hostport' => '3306',
            'charset' => 'utf8mb4',
        ],
        'sqlite' => [
            'type' => 'sqlite',
            'database' => 'database/sqlite.db',
        ],
    ]
];
  1. 执行数据库迁移
# 自动创建数据表和初始数据
php think migrate:run

使用 PostgreSQL

  1. 创建数据库
CREATE DATABASE thinkadmin;
  1. 修改配置文件 config/database.php
return [
    // 数据库类型 - 修改为 pgsql
    'default' => 'pgsql',
    'connections' => [
        'pgsql' => [
            'type' => 'pgsql',
            'hostname' => '127.0.0.1',
            'database' => 'thinkadmin',
            'username' => 'postgres',
            'password' => 'your_password',
            'hostport' => '5432',
            'charset' => 'utf8',
        ],
    ]
];

💡 重要提示

  • ThinkAdmin v6.1 使用 Phinx 数据库迁移工具
  • 无需手动导入 SQL 脚本
  • 支持数据库版本管理和回滚
  • 自动创建系统必需的数据表

🔄 数据库切换步骤

  1. 修改默认数据库类型

    • 'default' => 'sqlite' 改为 'default' => 'mysql'(或其他数据库类型)
  2. 配置数据库连接参数

    • 填写正确的数据库连接信息(主机、用户名、密码等)
  3. 执行数据库迁移

    • 运行 php think migrate:run 创建数据表
  4. 验证配置

    • 访问系统确认数据库连接正常

🎯 核心功能

🔐 权限管理系统

  • 注解权限控制 - 通过方法注释实现功能节点自动生成
  • RBAC 权限模型 - 支持角色、用户、权限的灵活配置
  • 菜单权限管理 - 动态菜单生成和权限控制
  • 操作日志记录 - 完整的用户操作审计日志

📁 文件存储系统

  • 多存储支持 - 本地存储、云存储(七牛云、阿里云、腾讯云等)
  • 文件秒传 - 基于文件 HASH 实现重复文件秒传
  • CDN 加速 - 支持云存储 CDN 加速
  • 安全上传 - 文件类型验证和安全存储

🔌 插件生态

  • PaaS 架构 - 类似 PaaS 的组件升级更新服务
  • Composer 管理 - 统一的依赖包管理
  • 热插拔 - 支持插件的动态安装和卸载
  • 版本控制 - 插件版本管理和升级

异步任务系统

  • 多进程处理 - 支持并列多进程执行任务
  • 实时进度 - 任务执行进度实时显示
  • 跨平台支持 - 兼容 Windows 和 Linux
  • 任务队列 - 支持任务队列和优先级管理

🛠️ 开发工具

  • CRUD 生成器 - 快速生成增删改查代码
  • 代码生成器 - 自动生成控制器、模型、视图
  • API 文档 - 自动生成 API 文档
  • 调试工具 - 完善的调试和日志系统

📚 开发指南

快速创建模块

<?php
namespace app\admin\controller;

use think\admin\Controller;

class UserController extends Controller
{
    /**
     * 用户列表
     * @auth true
     * @menu true
     */
    public function index()
    {
        $this->title = '用户管理';
        // 使用 QueryHelper 进行数据查询和分页
        $this->_query('SystemUser')
            ->like('username,nickname,phone')
            ->equal('status')
            ->dateBetween('create_at')
            ->order('id desc')
            ->page();
    }

    /**
     * 添加用户
     * @auth true
     * @menu true
     */
    public function add()
    {
        $this->title = '添加用户';
        $this->_form('SystemUser', 'form');
    }
}

权限注解说明

/**
 * 操作名称
 * @auth true    # 需要权限验证
 * @menu true    # 显示在菜单中
 * @login true   # 需要强制登录
 */
public function index()
{
    // 控制器代码
}

数据库操作

// 使用 QueryHelper 进行数据查询
$this->_query('user')
    ->like('username,email')
    ->equal('status')
    ->dateBetween('create_time')
    ->order('id desc')
    ->page();

// 使用 FormHelper 处理表单
$this->_form('user', 'form');

// 使用 SaveHelper 更新状态
$this->_save('user', $this->_vali([
    'status.require' => '状态不能为空',
    'status.in:0,1' => '状态值无效'
]));

🚀 性能优化

缓存配置

// config/cache.php
'default' => 'redis',
'stores' => [
    'redis' => [
        'type' => 'redis',
        'host' => '127.0.0.1',
        'port' => 6379,
        'password' => '',
        'select' => 0,
        'timeout' => 0,
        'expire' => 0,
        'persistent' => false,
        'prefix' => '',
    ],
],

数据库优化

-- 为常用查询字段添加索引
CREATE INDEX idx_user_status ON user(status);
CREATE INDEX idx_user_create_time ON user(create_time);
CREATE INDEX idx_user_status_time ON user(status, create_time);

🛠️ 系统指令

基础指令

# 启动开发服务器
php think run --host 127.0.0.1 --port 8000

# 数据库迁移
php think migrate:run

# 重写系统菜单
php think xadmin:sysmenu

# 同步微信粉丝数据
php think xadmin:fansall

任务管理指令

# 启动异步任务监听
php think xadmin:queue listen

# 检查任务监听状态
php think xadmin:queue status

# 停止所有任务进程
php think xadmin:queue stop

📞 技术支持

官方资源

社区交流

  • QQ 群 1: 513350915
  • QQ 群 2: 866345568
  • 微信群: 扫描下方二维码
微信群二维码

学习资源

🔌 插件生态

核心插件

  • think-plugs-admin - 后台管理核心插件
  • think-plugs-wechat - 微信管理插件
  • think-plugs-static - 静态资源管理插件
  • think-plugs-account - 账号管理插件
  • think-plugs-payment - 支付管理插件

安装插件

# 安装微信管理模块
composer require zoujingli/think-plugs-wechat

# 安装账号管理模块
composer require zoujingli/think-plugs-account

# 安装支付管理模块
composer require zoujingli/think-plugs-payment

插件开发

// 插件服务注册
class Service extends \think\Service
{
    public function register()
    {
        // 注册服务
    }

    public function boot()
    {
        // 启动服务
    }
}

📦 代码仓库

主要仓库

贡献代码

  • 提交 PR: 请在 ThinkAdminDeveloper 仓库提交
  • 问题反馈: 使用 GitHub Issues 反馈问题
  • 代码规范: 遵循 PSR-4 自动加载规范

在线体验

🛠️ 系统指令详解

基础管理指令

# 启动开发服务器
php think run --host 127.0.0.1 --port 8000

# 数据库迁移
php think migrate:run

# 重写系统菜单
php think xadmin:sysmenu

# 同步微信粉丝数据
php think xadmin:fansall

# 数据库打包为 Phinx 脚本
php think xadmin:package

# 批量替换数据库字段内容
php think xadmin:replace

# 数据库优化和修复
php think xadmin:database

# 安装模块或插件
php think xadmin:publish --migrate

任务管理指令

任务进程管理

# 启动异步任务监听服务
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

本地调试管理

# 停止本地调试服务
php think xadmin:queue webstop

# 开启本地调试服务(建议定时任务执行)
php think xadmin:queue webstart

# 查看本地调试状态
php think xadmin:queue webstatus

定时任务配置

Linux Crontab

# 编辑定时任务
crontab -e

# 添加以下任务(每分钟检查一次)
* * * * * cd /path/to/thinkadmin && php think xadmin:queue start
* * * * * cd /path/to/thinkadmin && php think xadmin:queue webstart

Windows 任务计划程序

  1. 打开任务计划程序
  2. 创建基本任务
  3. 设置触发器为每分钟
  4. 操作设置为运行程序:php think xadmin:queue start

🔧 问题修复

安全修复

  • CORS 跨域配置 - 增加跨域规则配置,配置参数位于 config/app.php
  • XSS 防护 - 修复模板输出自动转义机制,防止 XSS 攻击
  • 文件上传安全 - 增强文件后缀验证,阻止非法文件上传
  • CSRF 防护 - 自动为表单添加 CSRF 安全验证字段
  • SQL 注入防护 - 使用参数化查询防止 SQL 注入

功能优化

  • 模板引擎优化 - 修复模板取值问题,使用 {$get.NAME|default=''} 替代 {:input(NAME)}
  • 编辑器安全 - 禁用 CKEditor 中所有标签的 on 事件,阻止脚本注入
  • 接口异常处理 - 优化 JsonRpc 接口异常处理机制
  • 主题配置 - 支持全局默认+用户个性配置
  • 地图数据更新 - 行政区域数据更新为百度地图最新数据

性能优化

  • 缓存机制 - 优化缓存策略,提升系统性能
  • 数据库优化 - 优化数据库查询和索引
  • 静态资源 - 优化静态资源加载和压缩
  • 异步任务 - 优化异步任务处理机制

📄 版权信息

开源协议

ThinkAdmin 遵循 MIT 开源协议发布,免费提供使用。

版权声明

  • 版权所有: Copyright © 2014-2025 by ThinkAdmin
  • 官方网站: https://thinkadmin.top
  • 开源协议: MIT License
  • 第三方代码: 项目中包含的第三方源码和二进制文件的版权信息另行标注

免责声明

在使用 ThinkAdmin 前请认真阅读《免责声明》并同意该声明。

更多细节请参阅 LICENSE 文件。

📚 历史版本

以下系统的体验账号及密码都是 admin

🚀 ThinkAdmin v6.1(当前版本)

📦 ThinkAdmin v6.0

📱 ThinkAdmin v5

🔧 ThinkAdmin v4

📋 ThinkAdmin v3

📊 ThinkAdmin v2

🎯 ThinkAdmin v1

🎉 结语

ThinkAdmin v6.1 是一个功能强大、易于使用的现代化后台管理系统。无论您是初学者还是经验丰富的开发者,都能快速上手并构建出高质量的后台管理应用。

开始您的开发之旅

  1. 快速体验 - 访问在线演示了解系统功能
  2. 本地安装 - 按照安装指南搭建本地环境
  3. 学习开发 - 阅读开发文档和最佳实践
  4. 参与社区 - 加入官方群组交流学习
  5. 贡献代码 - 为项目贡献您的代码和想法

感谢您选择 ThinkAdmin 🎊