模块参考
Drubase One 由 8 个核心 BaaS 模块组成,每个模块负责特定的功能领域。
📦 模块架构
Drubase One BaaS Platform
│
├── 核心基础模块
│ ├── baas_tenant (租户管理)
│ ├── baas_project (项目组织)
│ └── baas_auth (认证授权)
│
├── 数据与 API 模块
│ ├── baas_entity (动态实体)
│ ├── baas_api (RESTful API)
│ └── baas_file (文件管理)
│
└── 高级功能模块
├── baas_realtime (实时通信)
└── baas_functions (无服务器函数)🎯 模块概述
BaaS Tenant - 租户管理
核心功能:
- 多租户隔离架构
- 租户生命周期管理
- 用户-租户映射关系
- 租户级别的配置和资源限制
主要类:
TenantManager- 租户管理服务TenantService- 租户业务逻辑TenantController- 租户 API 控制器TenantAccessChecker- 租户访问控制
适用场景:
- SaaS 多租户应用
- 数据隔离需求
- 租户级别计费
BaaS Entity - 动态实体
核心功能:
- 动态实体模板定义
- 运行时创建数据表
- 字段类型系统
- 实体 CRUD 操作
- PHP 类文件自动生成
主要类:
EntityTemplateManager- 实体模板管理DynamicEntityService- 动态实体服务EntityFieldManager- 字段管理ProjectTableNameGenerator- 表名生成器
适用场景:
- 无代码/低代码平台
- 用户自定义数据模型
- 快速原型开发
BaaS API - RESTful API
核心功能:
- RESTful API 接口
- Token Bucket 速率限制
- API 路由管理
- 请求/响应规范化
- Swagger/OpenAPI 文档
主要类:
ApiController- API 基础控制器RateLimitService- 速率限制服务ApiRateLimitSubscriber- 速率限制事件订阅ApiResponseFormatter- 响应格式化
适用场景:
- 前端应用对接
- 移动应用后端
- 第三方集成
BaaS Auth - 认证授权
核心功能:
- JWT 认证
- 基于角色的访问控制 (RBAC)
- 项目级权限管理
- 统一权限检查器
- API Token 管理
主要类:
JwtAuthService- JWT 认证服务UnifiedPermissionChecker- 统一权限检查ProjectPermissionService- 项目权限服务AuthController- 认证 API 控制器
适用场景:
- API 安全访问
- 多级权限控制
- 细粒度授权
BaaS Project - 项目管理
核心功能:
- 项目生命周期管理
- 项目成员管理
- 项目角色系统
- 项目级别资源隔离
主要类:
ProjectManager- 项目管理服务ProjectService- 项目业务逻辑ProjectMemberService- 成员管理ProjectController- 项目 API 控制器
适用场景:
- 协作平台
- 多项目管理
- 团队工作空间
BaaS File - 文件管理
核心功能:
- 文件上传和下载
- 文件存储管理
- 文件访问控制
- 项目级文件归属
- 文件使用统计
主要类:
FileService- 文件服务FileUploadService- 上传处理FileAccessChecker- 文件访问控制FileController- 文件 API 控制器
适用场景:
- 用户文件管理
- 媒体资源存储
- 文件共享功能
BaaS Realtime - 实时通信
核心功能:
- WebSocket 连接管理
- 实时消息推送
- 频道订阅系统
- 在线状态管理
主要类:
RealtimeService- 实时服务WebSocketManager- WebSocket 管理ChannelManager- 频道管理RealtimeController- 实时 API 控制器
适用场景:
- 实时聊天
- 协作编辑
- 推送通知
BaaS Functions - 无服务器函数
⚠️ 待验证 - 此模块功能正在验证中
核心功能:
- Node.js 函数执行
- HTTP 触发器
- 定时任务调度
- 函数日志管理
主要类:
FunctionService- 函数服务FunctionExecutor- 函数执行器TriggerManager- 触发器管理FunctionController- 函数 API 控制器
适用场景:
- 业务逻辑扩展
- 定时任务
- Webhook 处理
🔄 模块依赖关系
baas_auth
↓
baas_tenant → baas_project → baas_entity → baas_api
↓ ↓ ↓
baas_file baas_realtime baas_functions依赖说明:
- 所有模块依赖 Drupal 11 核心
baas_auth提供统一的权限检查,被所有模块使用baas_tenant和baas_project是基础模块baas_entity依赖项目结构- 功能模块依赖基础模块提供的服务
📖 使用文档
每个模块的详细文档包含:
- 架构设计 - 模块设计理念和架构图
- 核心类 - 重要类的说明和方法签名
- 服务注册 - services.yml 配置说明
- API 接口 - RESTful API 端点文档
- 数据库表 - 表结构和字段说明
- 配置选项 - 可配置项和默认值
- 使用示例 - 代码示例和最佳实践
- 扩展指南 - 如何基于模块进行扩展
🔍 快速查找
按功能查找
- 用户认证 →
baas_auth - 数据存储 →
baas_entity - API 开发 →
baas_api - 文件上传 →
baas_file - 实时功能 →
baas_realtime - 后台任务 →
baas_functions - 多租户 →
baas_tenant - 团队协作 →
baas_project
按使用频率
高频使用:
baas_entity- 数据模型必备baas_api- API 开发必备baas_auth- 认证授权必备
中频使用:
4. baas_project - 多项目管理
5. baas_file - 文件功能
6. baas_tenant - 多租户场景
按需使用:
7. baas_realtime - 需要实时通信时
8. baas_functions - 需要函数计算时
💡 使用建议
模块选择
-
核心模块 (必用):
baas_entity- 动态实体数据模型baas_api- RESTful API 接口baas_auth- 认证授权
-
扩展模块 (按需):
baas_project- 多项目管理baas_tenant- 多租户隔离baas_file- 文件存储
-
高级模块 (可选):
baas_realtime- 实时通信baas_functions- 函数计算
最佳实践
-
使用依赖注入
public function __construct( protected readonly EntityTemplateManager $templateManager, protected readonly UnifiedPermissionChecker $permissionChecker, ) {} -
遵循权限检查模式
if (!$this->permissionChecker->canAccessProject($user_id, $project_id)) { throw new AccessDeniedHttpException(); } -
使用事件系统
$event = new EntityCreatedEvent($entity_template); $this->eventDispatcher->dispatch($event, EntityEvents::ENTITY_CREATED); -
异常处理规范
throw new EntityException( 'Error message', EntityException::ERROR_CODE, null, ['context' => $value] );
📚 相关资源
➡️ 模块文档
查看各模块详细文档:
Last updated on