企业级 SaaS 极速后台管理系统 · 基于 webman 2.x + Vue 3
企业级 SaaS 极速后台管理系统,终于来了!
Madong-SaaS 5.x 是一款基于 webman 2.x + Vue 3 的企业级 SaaS 后台管理系统,内置完整的多租户架构、插件系统、Web 终端等高级功能,提供从零到一的商业项目快速启动能力。
历史版本痛点:
config/database.php5.x 解决方案:
TenantConnectionManager 动态管理租户数据库连接heartbeat_interval / idle_timeout / max_connections)single / field / database 三种隔离模式,库隔离模式下动态创建连接,自动复用主库配置模板技术实现:
// 5.x 动态连接池架构
TenantConnectionManager::setCurrentConnection($tenantId);
// 自动创建连接池,兼容框架 pool 配置
// 支持 thousands 级租户无压力
5.x 新增功能:
配置驱动:
config/terminal.php:7777 行完整终端配置历史版本:
5.x 解决方案:
template/mono/ + template/web/template/mono/apps/ 目录,多应用支持template/web/(Nuxt 4.+),快速搭建企业官网web 模板同样支持插件系统,动态注册页面和路由Mono 模板(管理后台):
admin:后台管理前端(Vben Admin 5)platform:平台管理前端install:安装向导前端backend-mock:后端 Mock 服务Web 模板(企业官网):
二开友好:
# 在 template/mono/apps/ 下添加新的前端应用
mkdir template/mono/apps/my-custom-app
# 自动集成到 Monorepo,共享依赖和配置
# 使用 web 模板快速搭建企业官网
cd template/web
pnpm install
pnpm dev
# 自动启动 Nuxt 4 开发服务器
共享包:packages/@core/ + packages/@madong/ + packages/vben-components/
| 5.x 三种隔离模式: | 模式 | 说明 | 适用场景 |
|---|---|---|---|
| single | 单租户模式(不隔离) | 独立部署,无租户概念 | |
| field | 字段隔离(共享表,通过 tenant_id 字段区分) |
中小规模,成本优先 | |
| database | 库隔离(每个租户独立数据库) | 大规模,安全优先 |
5.x 新增能力:
TenantConnectionManager 自动创建/释放连接TenantContext 全局管理租户信息TenantScope 自动注入 tenant_id 条件Admin::class)5.x 插件能力:
插件目录结构:
backend/plugin/
├── demo/ # 示例插件
└── portal/ # 门户插件
5.x 支持一键生成:
使用方式:
php start.php gen:crud --table=order --module=order
# 自动生成全套 CRUD 代码,直接可用
历史版本:
5.x 解决方案:
✅ 两种开发模式:
madong/query(适合快速插件开发)✅ 跳过 Service/DAO 层:控制器直接使用 madong/query 处理数据库查询
✅ 统一 Swagger 注解路由:所有路由通过 Swagger 注解自动注册,无需手动配置
✅ madong/query:强大的查询参数解析和过滤库,简化数据库操作
madong/query 特性:
轻量级模式示例(控制器直写):
<?php
namespace App\Plugin\MyPlugin\Controller;
use App\AdminApi\Schema\Request\MyPlugin\ListRequest;
use App\AdminApi\Schema\Response\MyPlugin\DetailResponse;
use App\Model\Order;
use support\Request;
use support\Response;
use madong\query\traits\WithQueryParams;
class OrderController extends BaseController
{
use WithQueryParams;
// Swagger 注解路由(统一路由注册方式)
#[OA\Get(
path: '/adminapi/my-plugin/orders',
description: '订单列表',
tags: ['我的插件'],
security: [['Bearer' => []]],
responses: [
new OA\Response(response: 200, description: '成功'),
]
)]
public function index(ListRequest $request): Response
{
// 直接使用 madong/query 处理查询
return json($this->paginateWithParams(Order::query(), $request->validated(), [
'allowed_fields' => ['order_no', 'status', 'created_at'],
'keyword_fields' => ['order_no', 'customer_name'],
'default_sort' => ['created_at' => 'desc'],
]));
}
#[OA\Post(
path: '/adminapi/my-plugin/orders',
description: '创建订单',
tags: ['我的插件'],
security: [['Bearer' => []]],
)]
public function store(ListRequest $request): Response
{
$data = $request->validated();
$order = Order::create($data);
return json(DetailResponse::fromModel($order)->toArray());
}
#[OA\Get(
path: '/adminapi/my-plugin/orders/{id}',
description: '订单详情',
tags: ['我的插件'],
security: [['Bearer' => []]],
)]
public function show($id): Response
{
$order = Order::find($id);
return json(DetailResponse::fromModel($order)->toArray());
}
}
完整 MVC 模式示例(复杂业务):
<?php
namespace App\AdminApi\Controller\Order;
use App\AdminApi\Service\OrderService;
use App\AdminApi\Schema\Request\Order\ListRequest;
use support\Request;
use support\Response;
class OrderController extends Crud
{
protected OrderService $service;
public function __construct(OrderService $service)
{
$this->service = $service;
}
// Swagger 注解路由(自动生成 API 文档)
#[OA\Get(
path: '/adminapi/orders',
description: '订单列表',
tags: ['订单管理'],
security: [['Bearer' => []]],
)]
public function index(ListRequest $request): Response
{
return $this->service->paginate($request->validated());
}
}
| 两种模式对比: | 特性 | 完整 MVC 模式 | 轻量级模式 |
|---|---|---|---|
| 适用场景 | 复杂业务逻辑 | 快速插件开发 | |
| 层次 | Controller -> Service -> DAO -> Model | Controller + Model | |
| 查询方式 | Service 调用 DAO | Controller 直接使用 madong/query |
|
| 路由注解 | Swagger 注解(统一方式) | Swagger 注解(统一方式) | |
| API 文档 | 自动生成 | 自动生成 | |
| 开发效率 | 较低(需要创建多个文件) | 较高(控制器直写) | |
| 代码生成器 | 支持(生成全套代码) | 支持(仅生成 Controller 和 Model) |
5.x 权限控制:
#[Permission] 属性:细粒度到每个 API 接口示例代码:
#[Permission('order:list', '订单列表')]
public function list(): Response
{
// 只有拥有 'order:list' 权限的用户才能访问
}
5.x 实时能力:
┌─────────────────────────────────────────────────────┐
│ 用户层 │
│ Admin 后台管理 Platform 平台管理 API 接口 │
└─────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ webman 2.x │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 控制器层 │ │ 服务层 │ │ DAO 层 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 模型层 │ │ Schema │ │ 验证层 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────────────────────────────────────┐ │
│ │ 插件系统 (Plugin) │ │
│ └──────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────┐ │
│ │ 多租户架构 (TenantConnectionManager) │ │
│ │ - 动态连接池 │ │
│ │ - 三种隔离模式 │ │
│ │ - 几千租户无压力 │ │
│ └──────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ 数据层 │
│ MySQL (业务数据) Redis (缓存/队列) │
└─────────────────────────────────────────────────────┘
| 分组 | 说明 | 核心模块 |
|---|---|---|
| foundation | 基础支撑 | MVC 基类、异常处理、工具类 |
| infrastructure | 基础设施 | 缓存、日志、监控、调度 |
| security | 安全认证 | JWT、验证码 |
| communication | 通信通知 | 邮件、短信、WebSocket 推送 |
| io | 文件 IO | Excel 导出、文件上传、雪花 ID |
| business | 业务模块 | 代码生成器、插件系统、多租户、路由组织 |
Madong-SaaS 5.x 版本现已开放尝鲜申请!
请在 Gitee 上提交 Issue 申请尝鲜资格:
👉 点击这里申请尝鲜
申请通过后,我们将为您提供:
| 特性 | 历史版本 | 5.x 版本 |
|---|---|---|
| 连接池 | 静态配置 config/database.php |
动态连接池,兼容框架 Pool,几千租户无压力 |
| Web 终端 | ❌ 无 | ✅ 基于 xterm.js,在线执行命令、查看日志 |
| 前端模板 | 固定模板 | ✅ 双模板:mono/(管理后台)+ web/(Nuxt 4.+ 企业官网) |
| 企业官网 | ❌ 无 | ✅ template/web/ Nuxt 4.+ 模板,快速搭建 SEO 友好的企业官网 |
| 多租户 | 基础字段隔离 | ✅ 三种隔离模式 + 动态连接管理 |
| 插件系统 | ❌ 无 | ✅ 完整插件生命周期管理,web 模板同样支持插件 |
| 代码生成器 | 基础 CRUD | ✅ 14 种生成器,全套代码一键生成 |
| 权限控制 | 路由级权限 | ✅ 方法级权限(PHP 8.2+ Attribute) |
| 实时通信 | ❌ 无 | ✅ SSE 服务端推送 |
| 开发模式 | 必须完整 MVC | ✅ 灵活选择:完整 MVC 或轻量级控制器直写 |
| 查询方式 | 手动拼接 SQL | ✅ madong/query 自动解析查询参数 |
| 路由注解 | ❌ 无 | ✅ 统一 Swagger 注解,自动生成 API 文档 |
Madong-SaaS 5.x · 企业级 SaaS 极速后台管理系统的终极解决方案
基于 webman 2.x + Vue 3 · 动态连接池 · 多租户架构 · 插件系统 · Web 终端 · 代码生成器 · 轻量级开发模式
好东西
推荐 支持开源 参与开源 共建生态
5.x来了,尝鲜走起