修改项目描述

This commit is contained in:
邹景立 2023-02-18 18:42:34 +08:00
parent baad5c717c
commit 64bb953268
2 changed files with 127 additions and 70 deletions

View File

@ -1,7 +1,21 @@
【模块版权说明】 ### 模块版权说明
注意:此模块需要体验案例,存在大量测试代码,不建议直接商用! 注意:此模块代码是体验案例,存在大量测试代码,不建议直接商用!
ThinkAdmin 的 data 模块功能为会员专有功能,普通用户不得直接商用。 ThinkAdmin 的 data 模块功能为会员专有功能,普通用户不得直接商用。
详情阅读https://thinkadmin.top/vip-introduce 详情阅读https://thinkadmin.top/vip-introduce
### 模块安装说明
将此模块 `app/data` 目录复制到你自己的 `ThinkAdmin V6` 项目 `app/data` 目录。
然后执行 `php think xadmin:publish --migrate` 安装,数据库通过脚本安装,不再需要另行导入。
### 配套前端代码
前端代码使用 `Dcloud` 开发,可以打包发布不同平台的应用,前端代码也仅供参数学习。
前端代码https://gitee.com/zoujingli/ThinkAdminMobile
接口文档https://documenter.getpostman.com/view/4518676/UVkmRHcb

177
readme.md
View File

@ -1,49 +1,87 @@
大道至简 · 原生框架 ## 大道至简 · 原生框架
---
> 主仓库地址https://gitee.com/zoujingli/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)
[![License](https://poser.pugx.org/zoujingli/thinkadmin/license)](https://packagist.org/packages/zoujingli/thinkadmin)
### 项目介绍 ### 项目介绍
当前`ThinkAdmin`的最新版本为[`v6.1`](https://gitee.com/zoujingli/ThinkAdmin/tree/v6.1) **ThinkAdmin** 是一款遵循 **MIT** 协议开源的快速开发框架,基于最新版本 **ThinkPHP6** 的极简后台管理系统,在使用 **ThinkAdmin** 前请认真阅读[《免责声明》](https://thinkadmin.top/disclaimer)并同意该声明。
,从这个版本开始正式进入插件时代,基础组件及扩展插件统一使用`Composer`管理。`ThinkAdmin`与传统`ThinkPHP`
多应用模式无差别,用户可以自行开发自己的模块,此次升级可完美兼容`ThinkAdmin v6.0`应用,原`ThinkAdmin v6.0`
只需安装`think-plugs-admin`组件即可升级到`v6.1`的插模式。
**[查看`ThinkAdmin v6.1`详细介绍请切换至`v6.1`分支](https://gitee.com/zoujingli/ThinkAdmin/tree/v6.1)** 当前 **ThinkAdmin** 的最新版本为[ **v6.1** ](https://gitee.com/zoujingli/ThinkAdmin/tree/v6.1),从这个版本开始正式进入插件时代,基础组件及扩展插件统一使用 **Composer** 管理。**ThinkAdmin** 与传统 **ThinkPHP** 多应用模式无差别,用户可以自行开发自己的模块,此次升级可完美兼容 **ThinkAdmin v6.0** 应用,原 **ThinkAdmin v6.0** 只需安装 **ThinkPlugsAdmin** 组件即可升级到 **v6.1** 的插件模式。
非常感谢大家一直以来对`ThinkAdmin`的支持,`ThinkAdmin``v1``v6`经历了几次大的调整,但总体都是基于`ThinkPHP` **[查看 ThinkAdmin v6.1 详细介绍请切换至 v6.1 分支](https://gitee.com/zoujingli/ThinkAdmin/tree/v6.1)**
最新版本为核心在开发,以微信领域及最简后台为目标而设计。
由于现有功能并不能满足所有项目的需求,`ThinkAdmin`只做基础底层的开发,这里包括系统权限管理,系统存储配置,微信授权管理,以及常用功能集成等…… **ThinkAdmin v6** 是基于 **v1**-**v5** 大版本的积累,经历了几次大的调整,结合 **ThinkPHP6** 的思维重新构建,减少大量原非必需的组件,自建存储层、服务层及队列任务机制,另外还增加了许多友好指令!当前 **v6** 版本已经通过了数个系统实践与测试,过程中不停调整与优化,目前系统模块及微信模块已经趋于稳定,现将系统管理 **`app/admin`** 及微信管理 **`app/wechat`** 定为 **v6** 内核两大模块并以 **MIT** 协议发布,后续可能还有其他模块及相关辅助模块更新发布,敬请期待……
因此`ThinkAdmin`也被大家定性为外包二开基线项目,目前已经有许多公司及个人在使用。
ThinkAdmin v6 基于`v1-v5`版本的积累,结合`ThinkPHP 6.0` 系统核心组件 **ThinkLibrary** 封装了大量常用操作以及多应用组件,可快速开发各种应用程序,且不影响原 **ThinkPHP** 生态,大大简化编码成本;可自行选择集成 **WechatDeveloper** 组件 ( 支持微信公众号、微信小程序、微信企业号、微信商户支付、支付宝支付等 ) 及 **QRcode** 二维码生成工具等。里面还内置了 **ThinkPHP6** 多应用组件并且完美支持路由文件存储支持本地服务器存储、七牛云对象存储支持CDN加速、又拍云USS存储支持CDN加速、阿里云OSS存储支持CDN加速、腾讯云COS存储支持CDN加速等存储方式自带异步任务处理机制可以并列多进程执行任务任务响应延时小于 **0.5** 秒,兼容 **windows****linux**
的思维重新构建,减少大量原非必需的组件,自建存储层、服务层及任务机制,增加了许多友好指令!`ThinkAdmin v6`
经历了数个项目实践与测试,不停调整,目前系统模块及微信模块已经趋于稳定,现将【系统管理(admin)】及【微信管理(wechat)】定为`v6`
内核两大模块并使用`MIT`协议发布,其中【微商商城(data)】仅为参考案例不做技术支持可直接删除,后续可能还有其他模块及相关辅助模块更新发布,敬请期待……
我们致力于二次开发底层框架,提供完整的组件及`API`,基于此框架可以快速开发应用。`ThinkAdmin v6`依赖自制组件`ThinkLibrary v6` 使用 **ThinkAdmin** 需要掌握 **ThinkPHP**、**jQuery**、**LayUI**、**RequireJs** 等开发技能,后台 **UI** 界面基于最新版本的 **LayUI** 前端框架以及 **RequireJs** 组件加载方式,默认加载了所有 **LayUI** 的组件,框架中可以直接使用组件(独立页面需要注意 **js** 加载顺序哦),使用 **RequireJs** 加载插件,互联网上资源非常多,可自行下载进行二次扩展。目前后台大部分页面为单页程序,页面加载速度非常快速,也因此后台不再支持选项卡模式。
,封装了大量常用操作,简化编码成本;默认集成`WechatDeveloper`
组件,支持微信公众号、微信小程序、微信企业号、微信商户支付、支付宝支付接口等。`ThinkLibrary`组件实现`ThinkPHP v6`
多应用模式及路由支持另外还支持本地服务文件存储、七牛云对象存储支持CDN加速、又拍云USS存储支持CDN加速、阿里云OSS存储支持CDN加速、腾讯云COS存储支持CDN加速
另外项目安装及二次开发可以先阅读`ThinkPHP`官方文档,数据库 SQL 文件位于项目根目录下,若实在无法解决当下问题可以加入官方微信群获得帮助 我们致力于快速开发的底层框架,让项目开发变得更容易。框架提供完善的基础组件以及对应的 **API** 支持,基于此框架可以快速开发各种 **WEB** 应用。任何一个系统都不能完全满足所有的业务场景,**ThinkAdmin** 免费提供基础底层的功能,这里包括系统权限管理,系统存储配置,微信授权管理,以及其他常用功能集成等…… 因此 **ThinkAdmin** 也被大家定性为外包二开基线系统。从 **v6.1** 开始我们提供会员尊享组件和定制业务插件服务。目前已经有许多公司及个人在使用 **ThinkAdmin**,通过数据聚合统计已有 **3** 万多在线运行的项目。
#### 注意事项 #### 注意事项
* 项目测试需要自行搭建环境导入数据库 SQL 文件并修改配置( config/database.php ) * **ThinkAdmin** 是基于国内最流行的 **ThinkPHP6** 框架开发,要求在不低于 **PHP 7.2.5** 的版本上运行,如果使用低版本的 **PHP** 可能会影响 **Composer** 依赖组件的安装,或将存在一定的安全隐患;
* 若操作提示“演示系统禁止操作”等字样,需要删除演示路由配置( app/admin/route/demo.php )或清空路由文件; * 运行环境必需开启 **PATHINFO** 并将对应的 **rewrite** 规则配置到站点才能访问,系统已不再支持 **ThinkPHP****URL** 兼容模式运行 ( 源于如何优雅地展示 ),可以阅读 **ThinkAdmin** 的文档[安装部署](https://thinkadmin.top/install)章节;
* 当前版本使用 ThinkPHP 6.0.x对 PHP 版本标注不低于 PHP 7.1,具体请阅读 ThinkPHP 官方文档; * 代码仓库下载的文件不包含 **Composer** 组件的 **vendor** 目录,下载后需要执行 **composer install** 安装依赖组件,同时会触发执行 **php think migrate:run** 安装数据库 **Phinx** 脚本,如需切换数据库只需要先配置再执行指令即可完成初始化安装数据;
* 环境需开启 PATHINFO不再支持 ThinkPHP 的 URL 兼容模式运行(源于如何优雅地展示); * 为保持系统可持续在线升级,建议不要在 **app/admin**、**app/wechat** 、**public/static** 这三个目录创建或修改文件,可以自行创建其他模块再编写自己的业务代码,自定义样式及脚本可以放置在 **public/static/extra** 目录里面。
* 项目默认不带`composer`模块`vendor`目录,下载后需要自行`composer install`安装; * 系统是基于严格类型 **PHP** 新特性开发,务必使用专业的 **IDE** ( 如:**PhpStorm**、**NetBeans**、**VsCode**、**Eclipse for PHP** 等 ) 进行项目开发以达到更好的体验与更高的效率!
## 系统安装
下载并进入 **ThinkAdmin** 根目录,运行指令安装依赖组件。
打开命令行窗口( Windows 用户 )或控制台( Linux 和 Mac 用户 )并执行如下命令:
**1. 通过 Composer 安装:**( 推荐方式,仅安装 admin 模块 )
```shell
### 创建项目( 需要在英文目录下面执行
composer create-project zoujingli/thinkadmin
### 进入项目根目录
cd thinkadmin
### 数据库初始化并安装
php think migrate:run
```
**2. 通过源码安装:** 安装 admin、wechat、data 三个模块
```shell
### 下载项目
git clone https://github.com/zoujingli/ThinkAdmin
### 进入项目根目录
cd ThinkAdmin
### 安装项目依赖组件
composer install --optimize-autoloader
### 数据库初始化并安装
php think migrate:run
```
## 数据库安装
1. 创建空的数据库并将参数配置到 **config/database.php** 文件;
2. 导入数据库 **SQL** 文件或执行数据库初始化操作,视版本情况操作;
**温馨提示:** 当前下载的代码已经是 **v6.1** 版本!
* 版本是 **v6.0** 的项目需要导入项目根目录下的 `SQL01-数据表结构.sql``SQL02-数据初始化.sql` 文件;
* 版本是 **v6.1** 的项目不需要导入数据库 `SQL` 文件,修改数据库配置后执行 `php think migrate:run` 即可;
## 技术支持 ## 技术支持
开发前请认真阅读 ThinkPHP 官方文档会对您有帮助哦! 开发前请认真阅读 ThinkPHP 官方文档会对您有帮助哦!
本地开发请使用`php think run`运行服务,访问`http://127.0.0.1:8000`即可进入项目。 本地开发请使用 `php think run` 运行服务,访问 `http://127.0.0.1:8000` 即可进入项目。
官方地址及开发指南https://thinkadmin.top ,如果实在无法解决问题可以加入官方群免费交流。 官方地址及开发指南https://thinkadmin.top ,如果实在无法解决问题可以加入官方群免费交流。
**1.官方QQ交流群** 513350915 **1.官方QQ交流群** 513350915
@ -55,23 +93,23 @@ ThinkAdmin v6 基于`v1-v5`版本的积累,结合`ThinkPHP 6.0`
## 注解权限 ## 注解权限
注解权限是指通过方法注释来实现后台 RBAC 授权管理,用注解来管理功能节点。 注解权限是指通过方法注释来实现后台 **RBAC** 授权管理,用注解来管理功能节点。
开发人员只需要写好注释,RBAC 的节点会自动生成只需要配置角色及用户就可以使用RBAC权限。 开发人员只需要写好注释,会自动生成功能的节点,只需要配置角色及用户就可以使用 **RBAC** 权限。
* 此版本的权限使用注解实现 * 此版本的权限使用注解实现
* 注释必须标准的块注释,如下案例 * 注释必须标准的块注释,案例如下展示
* 其中`@auth true`表示访问需要权限验证 * 其中 `@auth true` 表示访问需要权限验证
* 其中`@menu true`菜单编辑显示可选节点 * 其中 `@menu true` 菜单编辑显示可选节点
* 其中`@login true`需要强制登录才可访问 * 其中 `@login true` 需要强制登录才可访问
```php ```php
/** /**
* 操作的名称 * 操作的名称
* @auth true # 表示访问需要权限验证 * @auth true # 表示访问需要权限验证
* @menu true # 菜单编辑显示可选节点 * @menu true # 菜单编辑显示可选节点
* @login true # 需要强制登录才可访问 * @login true # 需要强制登录才可访问
*/ */
public function index(){ public function index(){
// @todo // @todo
} }
@ -79,30 +117,25 @@ public function index(){
## 代码仓库 ## 代码仓库
ThinkAdmin 为 MIT 协议开源项目,安装使用或二次开发不受约束,欢迎 fork 项目 主仓库放置于 **Gitee**, **Github** 为镜像仓库
部分代码来自互联网,若有异议可以联系作者进行删除。 部分代码来自互联网,若有异议可以联系作者进行删除。
* 在线体验地址https://v6.thinkadmin.top (账号和密码都是 admin * 在线体验地址https://v6.thinkadmin.top (账号和密码都是 admin
* Gitee仓库地址https://gitee.com/zoujingli/ThinkAdmin/tree/v6 * Gitee 仓库地址https://gitee.com/zoujingli/ThinkAdmin
* GitHub仓库地址https://github.com/zoujingli/ThinkAdmin/tree/v6 * Github 仓库地址https://github.com/zoujingli/ThinkAdmin
## 框架指令 ## 框架指令
* 执行 `build.cmd` 可更新 `composer` 插件,会删除并替换 `vendor` 目录
* 执行 `php think run` 启用本地开发环境,访问 `http://127.0.0.1:8000` * 执行 `php think run` 启用本地开发环境,访问 `http://127.0.0.1:8000`
* 执行 `php think xadmin:fansall` 同步微信粉丝数据(依赖于 `wechat` 模块) * 执行 `php think xadmin:package` 将现有 `MySQL` 数据库打包为 `Phinx` 数据库脚本
* 执行 `php think xadmin:sysmenu` 重写系统菜单并生成新编号并清理已禁用的菜单 * 执行 `php think xadmin:sysmenu` 重写系统菜单并生成新编号,同时会清理已禁用的菜单数据
* 执行 `php think xadmin:version` 查看当前版本号,显示 `ThinkPHP` 版本及 `ThinkLibrary` 版本 * 执行 `php think xadmin:fansall` 同步微信粉丝数据,依赖于 `ThinkPlugsWechat` 应用插件
* 执行 `php think xadmin:replace` 可以批量替换数据库指定字符字段内容,通常用于文件地址替换
* 执行 `php think xadmin:database` 对数据库的所有表 `repair|optimize` 操作,优化并整理数据库碎片
* 执行 `php think xadmin:publish` 可自动安装现在模块或已安装应用插件,增加 `--migrate` 参数执行数据库脚本
#### 1. 线上代码更新 #### 1. 守护进程管理(可自建定时任务去守护监听主进程)
* 执行 `php think xadmin:install admin` 从线上服务更新 `admin` 模块的所有文件(注意文件安全)
* 执行 `php think xadmin:install wechat` 从线上服务更新 `wechat` 模块的所有文件(注意文件安全)
* 执行 `php think xadmin:install static` 从线上服务更新 `static` 静态资料文件(注意文件安全)
* 执行 `php think xadmin:install config` 从线上服务更新 `config` 常用配置文件(注意文件安全)
#### 2. 守护进程管理(可自建定时任务去守护监听主进程)
* 执行 `php think xadmin:queue listen` [监听]启动异步任务监听服务 * 执行 `php think xadmin:queue listen` [监听]启动异步任务监听服务
* 执行 `php think xadmin:queue start` [控制]检查创建任务监听服务(建议定时任务执行) * 执行 `php think xadmin:queue start` [控制]检查创建任务监听服务(建议定时任务执行)
@ -110,7 +143,7 @@ ThinkAdmin 为 MIT 协议开源项目,安装使用或二次开发不受约束
* 执行 `php think xadmin:queue status` [控制]查看异步任务监听状态 * 执行 `php think xadmin:queue status` [控制]查看异步任务监听状态
* 执行 `php think xadmin:queue stop` [控制]平滑停止所有任务进程 * 执行 `php think xadmin:queue stop` [控制]平滑停止所有任务进程
#### 3. 本地调试管理(可自建定时任务去守护监听主进程) #### 2. 本地调试管理(可自建定时任务去守护监听主进程)
* 执行 `php think xadmin:queue webstop` [调试]停止本地调试服务 * 执行 `php think xadmin:queue webstop` [调试]停止本地调试服务
* 执行 `php think xadmin:queue webstart` [调试]开启本地调试服务(建议定时任务执行) * 执行 `php think xadmin:queue webstart` [调试]开启本地调试服务(建议定时任务执行)
@ -118,19 +151,29 @@ ThinkAdmin 为 MIT 协议开源项目,安装使用或二次开发不受约束
## 问题修复 ## 问题修复
* 增加`CORS`跨域规则配置,配置参数置放于`config/app.php`,需要更新`ThinkLibrary` * 增加 **CORS** 跨域规则配置,配置参数置放于 `config/app.php`,需要更新 `ThinkLibrary`
* 修复`layui.table`导致基于`ThinkPHP`模板输出自动转义`XSS`过滤机制失效,需要更新`ThinkLibrary` * 修复 `layui.table` 导致基于 `ThinkPHP` 模板输出自动转义 `XSS` 过滤机制失效,需要更新 `ThinkLibrary`
* 修复在模板中使用`{:input(NAME)}`取值而产生的`XSS`问题,模板取值更换为`{$get.NAME|default=''}` * 修复在模板中使用 `{:input(NAME)}` 取值而产生的 `XSS` 问题,模板取值更换为 `{$get.NAME|default=''}`
* 修复`CKEDITOR`配置文件,禁用所有标签的`on`事件,阻止`xss`脚本注入,需要更新`ckeditor/config.js` * 修复 `CKEDITOR` 配置文件,禁用所有标签的 `on` 事件,阻止 `xss` 脚本注入,需要更新 `ckeditor/config.js`
* 修复文件上传入口的后缀验证,读取真实文件后缀与配置对比,阻止不合法的文件上传并存储到本地服务器。 * 修复文件上传入口的后缀验证,读取真实文件后缀与配置对比,阻止不合法的文件上传并存储到本地服务器。
* 修改`JsonRpc`接口异常处理机制,当服务端绑定`Exception`时,客户端将能收到`error`消息及异常数据。 * 修改 `JsonRpc` 接口异常处理机制,当服务端绑定 `Exception` 时,客户端将能收到 `error` 消息及异常数据。
* 修改`location.hash`访问机制,禁止直接访问外部`URL`资源链接,防止外部`XSS`攻击读取本地缓存数据。 * 修改 `location.hash` 访问机制,禁止直接访问外部 `URL` 资源链接,防止外部 `XSS` 攻击读取本地缓存数据。
* 增加后台主题样式配置,支持全局默认+用户个性配置,需要更新`ThinkLibrary`,`static`,`admin`组件及模块。 * 增加后台主题样式配置,支持全局默认+用户个性配置,需要更新 `admin`, `static`, `ThinkLibrary` 组件及模块。
* 后台行政区域数据更新,由原来的腾讯地图数据切换为百度地图最新数据,需要更新`static`,数据库版需另行更新。 * 后台行政区域数据更新,由原来的腾讯地图数据切换为百度地图最新数据,需要更新 `static`,数据库版需另行更新。
## 项目版本 ## 版权信息
体验账号及密码都是 admin [**ThinkAdmin**](https://thinkadmin.top) 遵循 [**MIT**](license) 开源协议发布,并免费提供使用。
本项目包含的第三方源码和二进制文件的版权信息另行标注。
版权所有 Copyright © 2014-2023 by ThinkAdmin (https://thinkadmin.top) All rights reserved。
更多细节参阅 [`LISENSE`](license) 文件
## 历史版本
以下系统的体验账号及密码都是 admin
### ThinkAdmin v6 基于 ThinkPHP 6.0 开发(后台权限基于注解实现) ### ThinkAdmin v6 基于 ThinkPHP 6.0 开发(后台权限基于注解实现)
@ -166,4 +209,4 @@ ThinkAdmin 为 MIT 协议开源项目,安装使用或二次开发不受约束
* 在线体验地址https://v1.thinkadmin.top (已停用) * 在线体验地址https://v1.thinkadmin.top (已停用)
* Gitee 代码地址https://gitee.com/zoujingli/ThinkAdmin/tree/v1 * Gitee 代码地址https://gitee.com/zoujingli/ThinkAdmin/tree/v1
* Github 代码地址https://github.com/zoujingli/ThinkAdmin/tree/v1 * Github 代码地址https://github.com/zoujingli/ThinkAdmin/tree/v1