{"id":13536277,"url":"https://github.com/zoujingli/ThinkAdmin","last_synced_at":"2025-04-02T03:30:30.394Z","repository":{"id":37664686,"uuid":"81794847","full_name":"zoujingli/ThinkAdmin","owner":"zoujingli","description":"基于 ThinkPHP6 的极简后台管理系统，内置注解权限、异步多任务、应用插件生态等，支持类 PaaS 更新公共模块和应用插件，插件可本地化定制开发。","archived":false,"fork":false,"pushed_at":"2024-10-17T03:25:33.000Z","size":71789,"stargazers_count":2187,"open_issues_count":11,"forks_count":840,"subscribers_count":142,"default_branch":"v6","last_synced_at":"2024-10-19T05:51:53.095Z","etag":null,"topics":["thinkadmin","thinkphp6"],"latest_commit_sha":null,"homepage":"https://thinkadmin.top","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zoujingli.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-13T07:00:14.000Z","updated_at":"2024-10-17T03:25:38.000Z","dependencies_parsed_at":"2024-01-29T15:30:17.125Z","dependency_job_id":"6bc69ad9-62bf-4ba5-81a6-f0eb968b0587","html_url":"https://github.com/zoujingli/ThinkAdmin","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoujingli%2FThinkAdmin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoujingli%2FThinkAdmin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoujingli%2FThinkAdmin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoujingli%2FThinkAdmin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zoujingli","download_url":"https://codeload.github.com/zoujingli/ThinkAdmin/tar.gz/refs/heads/v6","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222795273,"owners_count":17038797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["thinkadmin","thinkphp6"],"created_at":"2024-08-01T09:00:36.664Z","updated_at":"2025-04-02T03:30:30.388Z","avatar_url":"https://github.com/zoujingli.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"## 大道至简 · 原生框架\n\n[![Latest Stable Version](https://poser.pugx.org/zoujingli/thinkadmin/v/stable)](https://packagist.org/packages/zoujingli/thinkadmin)\n[![Total Downloads](https://poser.pugx.org/zoujingli/thinkadmin/downloads)](https://packagist.org/packages/zoujingli/thinkadmin)\n[![Monthly Downloads](https://poser.pugx.org/zoujingli/thinkadmin/d/monthly)](https://packagist.org/packages/zoujingli/thinkadmin)\n[![Daily Downloads](https://poser.pugx.org/zoujingli/thinkadmin/d/daily)](https://packagist.org/packages/zoujingli/thinkadmin)\n[![License](https://poser.pugx.org/zoujingli/thinkadmin/license)](https://packagist.org/packages/zoujingli/thinkadmin)\n\n### 项目介绍\n\n**ThinkAdmin** 是一款遵循 **MIT** 协议免费开源的快速开发框架，基于最新版本 **ThinkPHP6** 的极简后台管理系统 ( 已兼容 **ThinkPHP8** )，在使用 **ThinkAdmin** 前请认真阅读[《免责声明》](https://thinkadmin.top/disclaimer)并同意该声明。\n\n当前 **ThinkAdmin** 的最新版本为[ **v6.1** ](https://gitee.com/zoujingli/ThinkAdmin/tree/v6.1)，从这个版本开始正式进入插件时代，提供类似 **PaaS** 的组件升级更新服务，也可以本地化定制开发，基础组件及扩展插件统一使用 **Composer** 管理。**ThinkAdmin** 与传统 **ThinkPHP** 多应用模式无差别，用户可以自行开发自己的模块，此次升级可完美兼容 **ThinkAdmin v6.0** 应用，原 **ThinkAdmin v6.0** 只需安装 **ThinkPlugsAdmin** 组件即可升级到 **v6.1** 的插件模式。\n\n[//]: # (想要了解更多 **ThinkAdmin** 插件生态请阅读 [《ThinkAdmin 插件生态》]\u0026#40;https://thinkadmin.top/guide/plugin.html\u0026#41;)\n\n**[查看 ThinkAdmin v6.1 详细介绍请切换至 v6.1 分支](https://gitee.com/zoujingli/ThinkAdmin/tree/v6.1)！！**\n\n**ThinkAdmin v6** 是基于 **v1**-**v5** 大版本的积累，经历了几次大的调整，结合 **ThinkPHP6** 的思维重新构建，减少大量原非必需的组件，自建存储层、服务层及队列任务机制，另外还增加了许多友好指令！当前 **v6** 版本已经通过了数个系统实践与测试，过程中不停调整与优化，目前系统模块及微信模块已经趋于稳定，现将系统管理 **`app/admin`** 及微信管理 **`app/wechat`** 定为 **v6** 内核两大模块并以 **MIT** 协议发布，后续可能还有其他模块及相关辅助模块更新发布，敬请期待……\n\n系统核心组件 **ThinkLibrary** 封装了大量常用操作以及多应用组件，可快速开发各种应用程序，且不影响原 **ThinkPHP** 生态，大大简化编码成本；可自行选择集成 **WechatDeveloper** 组件 ( 支持微信公众号、微信小程序、微信企业号、微信商户支付、支付宝支付等 ) 及 **QRcode** 二维码生成工具等。里面还内置了 **ThinkPHP6** 多应用组件并且完美支持路由；文件存储支持本地服务器存储、自建Alist存储、七牛云对象存储（支持CDN加速）、又拍云USS存储（支持CDN加速）、阿里云OSS存储（支持CDN加速）、腾讯云COS存储（支持CDN加速）等存储方式；自带异步任务处理机制，可以并列多进程执行任务，任务响应延时小于 **0.5** 秒，兼容 **windows** 及 **linux**。\n\n使用 **ThinkAdmin** 需要掌握 **ThinkPHP**、**jQuery**、**LayUI**、**RequireJs** 等开发技能，后台 **UI** 界面基于最新版本的 **LayUI** 前端框架以及 **RequireJs** 组件加载方式，默认加载了所有 **LayUI** 的组件，框架中可以直接使用组件（独立页面需要注意 **js** 加载顺序哦），使用 **RequireJs** 加载插件，互联网上资源非常多，可自行下载进行二次扩展。目前后台大部分页面为单页程序，页面加载速度非常快速，也因此后台不再支持选项卡模式。\n\n我们致力于快速开发的底层框架，让项目开发变得更容易。框架提供完善的基础组件以及对应的 **API** 支持，基于此框架可以快速开发各种 **WEB** 应用。任何一个系统都不能完全满足所有的业务场景，**ThinkAdmin** 免费提供基础底层的功能，这里包括系统权限管理，系统存储配置，微信授权管理，以及其他常用功能集成等…… 因此 **ThinkAdmin** 也被大家定性为外包二开基线系统。目前已经有许多公司及个人在使用 **ThinkAdmin**，通过数据聚合统计已有 **5** 万多在线运行的项目。\n\n#### 注意事项\n\n* **ThinkAdmin** 是基于国内最流行的 **ThinkPHP6** 框架开发，要求在不低于 **PHP 7.2.5** 的版本上运行，如果使用低版本的 **PHP** 可能会影响 **Composer** 依赖组件的安装，或将存在一定的安全隐患；\n* 运行环境必需开启 **PATHINFO** 并将对应的 **rewrite** 规则配置到站点才能访问，系统已不再支持 **ThinkPHP** 的 **URL** 兼容模式运行 ( 源于如何优雅地展示 )，可以阅读 **ThinkAdmin** 的文档[安装部署](https://thinkadmin.top/guide/install.html)章节；\n* 代码仓库下载的文件不包含 **Composer** 组件的 **vendor** 目录，下载后需要执行 **composer install** 安装依赖组件，同时会触发执行 **php think migrate:run** 安装数据库 **Phinx** 脚本，如需切换数据库只需要先配置再执行指令即可完成初始化安装数据；\n* 为保持系统可持续在线升级，建议不要在 **app/admin**、**app/wechat** 、**public/static** 这三个目录创建或修改文件，可以自行创建其他模块再编写自己的业务代码，自定义样式及脚本可以放置在 **public/static/extra** 目录里面。\n* 系统是基于严格类型 **PHP** 新特性开发，务必使用专业的 **IDE** ( 如：**PhpStorm**、**NetBeans**、**VsCode**、**Eclipse for PHP** 等 ) 进行项目开发以达到更好的体验与更高的效率！\n\n## 系统安装\n\n下载并进入 **ThinkAdmin** 根目录，运行指令安装依赖组件。\n\n打开命令行窗口（ Windows 用户 ）或控制台（ Linux 和 Mac 用户 ）并执行如下命令：\n\n**1. 通过 Composer 安装：**( 推荐方式，默认只安装 admin 模块 )\n\n```shell\n### 创建项目（ 需要在英文目录下面执行 ）\ncomposer create-project zoujingli/thinkadmin\n\n### 进入项目根目录\ncd thinkadmin\n\n### 数据库初始化安装 \n### 系统默认使用 Sqlite 数据库\n### 若使用其他数据库请修改 DB_ 相关的配置\ncopy .env.example .env\nvi .env\n\n#### 执行数据库初始化安装\nphp think migrate:run\n\n### 安装微信管理模块\ncomposer require zoujingli/think-plugs-wechat\n\n### 开启PHP内置WEB服务\n### 默认后台登录账号及密码都是 admin\nphp think run --host 127.0.0.1\n```\n\n**2. 通过源码安装：**（ 默认安装 admin、wechat 两个模块 ）\n\n[//]: # (如果需要安装演示系统的旧版本 **data** 模块代码，请跳转到)\n\n[//]: # (https://gitee.com/zoujingli/think-plugs-data)\n\n```shell\n### 下载项目（ 需要在英文目录下面执行 ）\n# git clone https://github.com/zoujingli/ThinkAdmin\ngit clone https://gitee.com/zoujingli/ThinkAdmin\n\n### 进入项目根目录\ncd ThinkAdmin\n\n### 安装项目依赖组件\ncomposer install --optimize-autoloader\n\n### 数据库初始化安装 \n### 系统默认使用 Sqlite 数据库\n### 若使用其他数据库请修改 DB_ 相关的配置\ncopy .env.example .env\nvi .env\n\n#### 执行数据库初始化安装\nphp think migrate:run\n\n### 开启PHP内置WEB服务\n### 默认后台登录账号及密码都是 admin\nphp think run --host 127.0.0.1\n```\n\n## 数据库安装\n\n1. 创建空的数据库，其中 **Sqlite** 不需要创建；\n2. 将数据库配置到 **config/database.php** 文件；\n\n注意：数据库参数修改，除了要修改连接参数，还需要切换 **default** 默认连接名称，如下面的 **mysql**、**sqlite** 等。\n\n```php\nreturn [\n     // 数据库类型\n    'default' =\u003e 'sqlite',\n    // 数据库连接参数\n    'connections' =\u003e [\n        'mysql'  =\u003e [ /* 具体参数省略 */ ], \n        'sqlite' =\u003e [ /* 具体参数省略 */ ],\n    ]       \n]\n```\n\n当前版本是 **ThinkAdmin v6.1** ，不需要导入数据库 `SQL` 脚本，修改数据库配置后执行 `php think migrate:run` 即可；\n\n## 技术支持\n\n开发前请认真阅读 ThinkPHP 官方文档，会对您有帮助哦！\n\n本地开发请使用 `php think run` 运行服务，访问 `http://127.0.0.1:8000` 即可进入项目。\n\n官方地址及开发指南：https://thinkadmin.top ，如果实在无法解决问题，可以加入官方群免费交流。\n\n**1.官方QQ交流群：** 513350915\n\n**2.官方QQ交流群：** 866345568\n\n**3.官方微信交流群**\n\n\u003cimg alt=\"\" src=\"https://thinkadmin.top/static/img/wx.png\" width=\"250\"\u003e\n\n## 注解权限\n\n注解权限是指通过方法注释来实现后台 **RBAC** 授权管理，用注解来管理功能节点。\n\n开发人员只需要写好注释，会自动生成功能的节点，只需要配置角色及用户就可以使用 **RBAC** 权限。\n\n* 此版本的权限使用注解实现\n* 注释必须是标准的块注释，案例如下展示\n* 其中 `@auth true` 表示访问需要权限验证\n* 其中 `@menu true` 菜单编辑显示可选节点\n* 其中 `@login true` 需要强制登录才可访问\n\n```php\n/**\n * 操作的名称\n * @auth true  # 表示访问需要权限验证\n * @menu true  # 菜单编辑显示可选节点\n * @login true # 需要强制登录才可访问 \n */\npublic function index(){\n   // @todo\n}\n```\n\n## 代码仓库\n\n我们的代码仓库已移至 **Github**，而 **Gitee** 则仅作为国内镜像仓库，方便广大开发者获取和使用。若想提交 **PR** 或 **ISSUE** 请在 [ThinkAdminDeveloper](https://github.com/zoujingli/ThinkAdminDeveloper) 仓库进行操作，如果在其他仓库操作或提交问题将无法处理！\n\n部分代码来自互联网，若有异议可以联系作者进行删除。\n\n* 在线体验地址：https://v6.thinkadmin.top （账号和密码都是 admin ）\n* Gitee 仓库地址：https://gitee.com/zoujingli/ThinkAdmin\n* Github 仓库地址：https://github.com/zoujingli/ThinkAdmin\n* Gitcode 仓库地址：https://gitcode.com/ThinkAdmin/ThinkAdmin\n\n## 框架指令\n\n* 执行 `php think run` 启用本地开发环境，访问 `http://127.0.0.1:8000`\n* 执行 `php think xadmin:package` 将现有 `MySQL` 数据库打包为 `Phinx` 数据库脚本\n* 执行 `php think xadmin:sysmenu` 重写系统菜单并生成新编号，同时会清理已禁用的菜单数据\n* 执行 `php think xadmin:fansall` 同步微信粉丝数据，依赖于 `ThinkPlugsWechat` 应用插件\n* 执行 `php think xadmin:replace` 可以批量替换数据库指定字符字段内容，通常用于文件地址替换\n* 执行 `php think xadmin:database` 对数据库的所有表 `repair|optimize` 操作，优化并整理数据库碎片\n* 执行 `php think xadmin:publish` 可自动安装现在模块或已安装应用插件，增加 `--migrate` 参数执行数据库脚本\n\n#### 1. 任务进程管理（可自建定时任务去守护监听主进程）\n\n* 执行 `php think xadmin:queue listen` [监听]启动异步任务监听服务\n* 执行 `php think xadmin:queue start`  [控制]检查创建任务监听服务（建议定时任务执行）\n* 执行 `php think xadmin:queue query`  [控制]查询当前任务相关的进程\n* 执行 `php think xadmin:queue status`  [控制]查看异步任务监听状态\n* 执行 `php think xadmin:queue stop`   [控制]平滑停止所有任务进程\n\n#### 2. 本地调试管理（可自建定时任务去守护监听主进程）\n\n* 执行 `php think xadmin:queue webstop` [调试]停止本地调试服务\n* 执行 `php think xadmin:queue webstart` [调试]开启本地调试服务（建议定时任务执行）\n* 执行 `php think xadmin:queue webstatus` [调试]查看本地调试状态\n\n## 问题修复\n\n* 增加 **CORS** 跨域规则配置，配置参数置放于 `config/app.php`，需要更新 `ThinkLibrary`。\n* 修复 `layui.table` 导致基于 `ThinkPHP` 模板输出自动转义 `XSS` 过滤机制失效，需要更新 `ThinkLibrary`。\n* 修复在模板中使用 `{:input(NAME)}` 取值而产生的 `XSS` 问题，模板取值更换为 `{$get.NAME|default=''}`。\n* 修复 `CKEDITOR` 配置文件，禁用所有标签的 `on` 事件，阻止 `xss` 脚本注入，需要更新 `ckeditor/config.js`。\n* 修复文件上传入口的后缀验证，读取真实文件后缀与配置对比，阻止不合法的文件上传并存储到本地服务器。\n* 修改 `JsonRpc` 接口异常处理机制，当服务端绑定 `Exception` 时，客户端将能收到 `error` 消息及异常数据。\n* 修改 `location.hash` 访问机制，禁止直接访问外部 `URL` 资源链接，防止外部 `XSS` 攻击读取本地缓存数据。\n* 增加后台主题样式配置，支持全局默认+用户个性配置，需要更新 `admin`, `static`, `ThinkLibrary` 组件及模块。\n* 后台行政区域数据更新，由原来的腾讯地图数据切换为百度地图最新数据，需要更新 `static`，数据库版需另行更新。\n\n## 版权信息\n\n[**ThinkAdmin**](https://thinkadmin.top) 遵循 [**MIT**](license) 开源协议发布，并免费提供使用。\n\n本项目包含的第三方源码和二进制文件的版权信息另行标注。\n\n版权所有 Copyright © 2014-2023 by ThinkAdmin (https://thinkadmin.top) All rights reserved。\n\n更多细节参阅 [`LISENSE`](license) 文件\n\n## 历史版本\n\n以下系统的体验账号及密码都是 admin\n\n### ThinkAdmin v6 基于 ThinkPHP 6.0 开发（后台权限基于注解实现）\n\n* 在线体验地址：https://v6.thinkadmin.top (运行中)\n* Gitee 代码地址：https://gitee.com/zoujingli/ThinkAdmin/tree/v6\n* Github 代码地址：https://github.com/zoujingli/ThinkAdmin/tree/v6\n\n### ThinkAdmin v5 基于 ThinkPHP 5.1 开发（后台权限基于注解实现）\n\n* 在线体验地址：https://v5.thinkadmin.top (已停用)\n* Gitee 代码地址：https://gitee.com/zoujingli/ThinkAdmin/tree/v5\n* Github 代码地址：https://github.com/zoujingli/ThinkAdmin/tree/v5\n\n### ThinkAdmin v4 基于 ThinkPHP 5.1 开发（不建议继续使用）\n\n* 在线体验地址：https://v4.thinkadmin.top (已停用)\n* Gitee 代码地址：https://gitee.com/zoujingli/ThinkAdmin/tree/v4\n* Github 代码地址：https://github.com/zoujingli/ThinkAdmin/tree/v4\n\n### ThinkAdmin v3 基于 ThinkPHP 5.1 开发（不建议继续使用）\n\n* 在线体验地址：https://v3.thinkadmin.top (已停用)\n* Gitee 代码地址：https://gitee.com/zoujingli/ThinkAdmin/tree/v3\n* Github 代码地址：https://github.com/zoujingli/ThinkAdmin/tree/v3\n\n### ThinkAdmin v2 基于 ThinkPHP 5.0 开发（不建议继续使用）\n\n* 在线体验地址：https://v2.thinkadmin.top (已停用)\n* Gitee 代码地址：https://gitee.com/zoujingli/ThinkAdmin/tree/v2\n* Github 代码地址：https://github.com/zoujingli/ThinkAdmin/tree/v2\n\n### ThinkAdmin v1 基于 ThinkPHP 5.0 开发（不建议继续使用）\n\n* 在线体验地址：https://v1.thinkadmin.top (已停用)\n* Gitee 代码地址：https://gitee.com/zoujingli/ThinkAdmin/tree/v1\n* Github 代码地址：https://github.com/zoujingli/ThinkAdmin/tree/v1\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoujingli%2FThinkAdmin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoujingli%2FThinkAdmin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoujingli%2FThinkAdmin/lists"}