【更新】madong 5.x 企业级极速开发框架

kzhzjdyw888

1. 概述

madong 5.x 是一个基于 Webman 的高性能企业级开发框架,以"每个细节都不一样"为设计理念,专注于提供生产级的解决方案。

2. 技术栈分析

2.1 核心技术栈

技术 版本 用途
PHP 8.2+ 核心编程语言
Webman 2.2 高性能HTTP服务框架
Workerman 5.1 底层异步网络库
JWT - 认证系统
Redis - 缓存与Token黑名单
Illuminate\Database ^11.33 ORM框架

2.2 技术选型优势

  • Webman:常驻内存模式,避免传统PHP框架的每次请求初始化开销
  • PHP 8.2+:充分利用现代PHP特性,如属性注解、类型系统等
  • Workerman 5.1:提供高性能的异步网络处理能力

3. 架构设计

3.1 目录结构

madong/                          # 项目根目录
├── backend/                     # 后端目录(当前目录)
│   ├── app/                    # 应用目录
│   │   ├── adminapi/           # 管理后台 API(控制器、验证器等)
│   │   ├── api/                # 前台 API(控制器、验证器等)
│   │   ├── bootstrap/          # 启动引导文件
│   │   ├── command/            # 命令行工具
│   │   ├── dao/                # 数据访问层
│   │   ├── enum/                # 枚举类
│   │   ├── event/              # 事件定义
│   │   ├── install/            # 安装脚本
│   │   ├── listener/           # 事件监听器
│   │   ├── middleware/         # 中间件
│   │   ├── model/              # 模型
│   │   ├── process/            # 自定义进程
│   │   ├── queue/              # 队列任务
│   │   ├── schema/             # 数据结构定义
│   │   ├── scope/              # 作用域定义
│   │   ├── service/            # 业务服务层
│   │   └── functions.php       # 全局函数
│   ├── config/                  # 配置文件
│   │   ├── plugin/              # 插件配置
│   │   ├── route/               # 路由配置
│   │   └── *.php                # 各类配置文件
│   ├── core/                    # 核心框架
│   │   ├── base/                # 基础类
│   │   ├── cache/               # 缓存组件
│   │   ├── captcha/             # 验证码组件
│   │   ├── db/                  # 数据库组件
│   │   ├── email/               # 邮件服务
│   │   ├── excel/               # Excel 导入导出
│   │   ├── exception/           # 异常处理
│   │   ├── generator/           # 代码生成器
│   │   ├── interface/           # 接口定义
│   │   ├── jwt/                 # JWT 认证
│   │   ├── logger/              # 日志组件
│   │   ├── notify/              # 通知服务
│   │   ├── plugin/              # 插件核心
│   │   ├── route/               # 路由组件
│   │   ├── scheduler/           # 定时任务
│   │   ├── sms/                 # 短信服务
│   │   ├── tool/                # 工具类
│   │   ├── trait/               # 特性类
│   │   ├── upload/              # 文件上传
│   │   ├── uuid/                # UUID 生成
│   │   └── functions.php        # 核心函数
│   ├── plugin/                   # 插件目录
│   ├── public/                   # 静态资源
│   ├── resource/                 # 资源文件
│   ├── runtime/                  # 运行时文件
│   ├── support/                  # 第三方支持库
│   ├── tests/                    # 单元测试
│   ├── vendor/                   # Composer 依赖包
│   ├── composer.json             # Composer 配置
│   ├── composer.lock             # 依赖锁定文件
│   ├── phinx.php                 # 数据库迁移配置
│   └── README.md                 # 项目说明文档
│
└── frontend/                     # 前端目录(需单独下载)
    ├── admin/                    # 管理后台前端
    └── web/                      # 前台前端

3.2 核心架构特点

  1. 分层架构

    • 控制器层(Controller):处理HTTP请求和响应
    • 服务层(Service):实现业务逻辑
    • 数据访问层(DAO):封装数据库操作
    • 模型层(Model):定义数据结构
  2. 模块化设计

    • 路由自动注册:基于OpenAPI Attribute扫描控制器
    • 通用CRUD基类:80%的增删改查一行代码搞定
    • 插件系统:热插拔,支持完整的模块生命周期管理
  3. 多端适配

    • 后端同时提供两套API体系:/adminapi/api
    • JWT的ClientType枚举覆盖全端:admin/api/web/mobile/mini

4. 核心功能模块

4.1 JWT认证系统

madong 5.x 的JWT实现超越了基础的"签发-验签"模式,提供了生产级的完整解决方案:

  • Token级黑名单:用户退出登录时,旧Token立刻进黑名单,Redis精确控制TTL
  • 刷新即作废:调用刷新接口时,旧AccessToken同时进黑名单
  • 用户级黑名单:一键封禁用户,所有客户端Token立刻失效
  • 三种登录模式single(全局单点)、client(同端单点)、multi(多端同时在线)
  • 五类客户端类型:覆盖管理后台、前台、Web端、移动端、小程序

核心代码示例:

// 踢掉指定设备
$jwt->kickoutByJti($jti);

// 踢掉某用户所有会话
$jwt->logoutAll($userId, $clientType);

// 查看当前在线设备列表
$jwt->getSessions($userId, $clientType);

4.2 权限系统

madong 5.x 实现了三层权限控制:

  • 第一层:菜单与按钮权限:基于权限码策略设计清晰
  • 第二层:接口级权限:通过注解方式实现,无需手动判断
  • 第三层:数据权限:支持6种范围(全部数据、自定义部门、本部门、本部门及子部门、仅本人、混合模式)

权限注解示例:

#[Permission(code: 'system:user:list')]
public function index(): Response { ... }

#[AllowAnonymous(reason: '公开接口')]
public function publicInfo(): Response { ... }

4.3 插件系统

madong 5.x 的插件系统实现了真正的热插拔:

  • 每个插件是一个独立模块,拥有完整的功能体系
  • 支持在线安装,SSE实时推送安装进度
  • 安装/卸载过程自动处理:
    • Composer依赖 & NPM依赖
    • 数据库迁移与初始数据
    • 前端页面生成
    • 菜单配置

4.4 代码生成器

代码生成器覆盖完整研发链路:

  • 后端:Controller(含CRUD接口+Swagger注解+权限码)、Service、DAO、Model、Validate、RequestForm、RequestQuery、Response Schema
  • 前端:列表页View + Schema配置、API调用文件、API Model类型定义、国际化语言文件
  • 支持插件模式:生成的代码可以直接写入插件目录

5. 技术实现细节

5.1 路由系统

基于Webman的路由系统,实现了自动注册机制:

Route::group('/adminapi', function () {
    Swagger::create()->registerRoute([...]);
});

通过扫描控制器的OpenAPI Attribute,自动生成路由和API文档,增删接口无需修改路由文件。

5.2 通用CRUD基类

继承Crud基类,内置完整的CRUD操作:

  • index:列表查询,支持多种输出格式
  • show:详情查询
  • store:创建
  • update:更新
  • destroy:删除
  • batchDelete:批量删除
  • select:下拉选择

支持tree/table_tree/normal多种输出格式,无需重复实现。

5.3 数据权限实现

数据权限通过中间件和查询构建器实现:

  • 根据用户角色和权限范围,自动注入WHERE条件
  • 无权限时自动注入WHERE 1=0,确保接口行为一致
  • 支持复杂的部门树权限控制

5.4 SSE实时通信

插件安装过程使用SSE(Server-Sent Events)实时推送进度:

  • 后端实时发送安装步骤
  • 前端实时显示进度
  • 每条消息携带唯一UUID,防消息错乱
  • 页面刷新后状态可恢复

6. 性能优化

  1. Webman常驻内存:避免传统PHP框架的每次请求初始化开销
  2. 连接池:数据库和Redis连接池,减少连接建立开销
  3. Redis缓存:热点数据和会话管理
  4. 异步处理:支持异步任务队列
  5. 竞态取消:前端快速操作时自动取消旧请求
  6. 防抖搜索:搜索输入默认防抖,避免频繁请求

7. 安全性

  1. JWT安全:Token黑名单、刷新即作废机制
  2. 权限控制:三层权限体系,细粒度控制
  3. 输入验证:完整的请求参数验证
  4. 操作日志:自动采集操作日志,无需手动埋点
  5. 安全配置:HTTPS支持、CORS配置、安全响应头

8. 扩展性

  1. 插件系统:热插拔,支持完整的模块生命周期
  2. 多语言支持:内置国际化支持
  3. 多存储支持:本地存储、云存储
  4. 命令行工具:插件管理、系统维护
  5. 代码生成器:快速生成业务代码

9. 技术亮点

  1. 生产级JWT:Token黑名单、多登录模式、客户端类型管理
  2. 真正的模块化:职责隔离,路由自动注册,通用CRUD基类
  3. 三层权限系统:菜单+接口+数据,全覆盖
  4. 完整的插件系统:热插拔,SSE实时安装
  5. 代码生成器:覆盖完整研发链路
  6. 前端工程化:useTable等工具,表格缓存系统
  7. 多端适配:三端真正打通,统一维护

10. 对比分析

与传统PHP框架对比

特性 madong 5.x (Webman) 传统PHP框架 (如Laravel)
运行模式 常驻内存 每次请求初始化
性能 高(无初始化开销) 中等(每次请求初始化)
并发处理 高(支持多进程) 中等(依赖PHP-FPM)
模块化 插件热插拔 目录分层
权限系统 三层权限控制 基础权限控制
代码生成 覆盖完整链路 基础代码生成

与其他后台框架对比

  • ThinkAdmin:基于ThinkPHP,性能相对较低
  • Laravel Admin:基于Laravel,功能丰富但性能一般
  • madong 5.x:基于Webman,性能优异,细节处理到位

11. 项目截图

截图
截图
截图
截图
截图
截图

madong 5.x 代表了PHP后台开发的一个重要方向:

  1. 高性能:通过Webman的常驻内存模式,充分发挥PHP的性能潜力
  2. 工程化:完善的代码生成器、插件系统、前端工具链
  3. 安全性:生产级的JWT实现、三层权限控制
  4. 可扩展性:热插拔插件系统,支持快速功能扩展
  5. 多端适配:三端统一维护,架构清晰

12 安装

https://gitee.com/motion-code/madong-admin 【5.x-alpha】

composer install

在线安装
http://your-domain.com/install
截图

命令安装

//在git环境下一键下载前端资源(前台,后台)
php webman madong-download:frontend

//命令安装输入对应的账号密码
php webman install:madong

13. 总结

madong 5.x 是一套完整的企业级应用开发解决方案,适合构建各种规模的Web应用。其对细节的关注和对技术的深入理解,使其在众多PHP框架中脱颖而出,为PHP后台开发树立了新的标杆。

官网

https://madong.tech/

微信群

截图

641 4 1
4个评论

搬砖小助手

终于等到了~~

  • 暂无评论
calvin

可更新了~~

  • calvin 2026-04-07

    saas版的有计划么

  • kzhzjdyw888 2026-04-07

    会出
    独立版本细节完善直接copy 添加一个管理前端跟后端中间件就可以了

10bang

感谢分享

  • 暂无评论
liziyu

板正,👍

kzhzjdyw888

520
积分
0
获赞数
0
粉丝数
2023-06-07 加入
🔝