mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2026-06-06 20:18:10 +08:00
补充 v8 重构后的架构文档、组件说明和迁移记录,方便后续维护者理解插件边界。 主要内容: - 更新根 README,说明 v8 插件分层、系统模块、交付命令和验证流程。 - 新增组件明细、插件边界、路由分发、软删除和稳定性文档。 - 记录 Storage 合并到 System、旧 View 移除和 Helper 并入 System 的决策。 - 补充文档注释报告和后续重构计划,便于持续演进。
3.1 KiB
3.1 KiB
Plugin Boundaries
相关文档
当前分层
flowchart TD
L["ThinkLibrary<br/>核心基础设施 / 门面 / 上下文 / Helper"] --> S["ThinkPlugsSystem<br/>后台壳层 / 认证 / 菜单 / 用户 / system_* / 存储中心 / 开发交付工具"]
L --> W["ThinkPlugsWorker<br/>queue / process 运行时实现"]
S --> W
S --> SF["system_file<br/>存储驱动 / 上传接口"]
S --> HT["plugin\\system\\helper\\*<br/>发布 / 迁移 / 打包工具"]
S --> AC["ThinkPlugsAccount"]
S --> P["ThinkPlugsPayment"]
S --> WC["ThinkPlugsWechatClient"]
S --> WS["ThinkPlugsWechatService"]
S --> WM["ThinkPlugsWemall"]
S --> U["ThinkPlugsWuma"]
W --> P
W --> WC
W --> U
AC --> P
AC --> WM
P --> WM
WM --> U
表归属
flowchart LR
SYS["ThinkPlugsSystem"] --> SB["system_base"]
SYS --> SD["system_data"]
SYS --> SO["system_oplog"]
SYS --> SA["system_auth"]
SYS --> SAN["system_auth_node"]
SYS --> SM["system_menu"]
SYS --> SU["system_user"]
SYS --> SF["system_file"]
WK["ThinkPlugsWorker"] --> SQ["system_queue"]
Library 内部分层
flowchart TD
SV["service<br/>AppService / NodeService / RuntimeService / QueueService / CacheSession / JwtToken"]
RT["runtime<br/>SystemContext / NullSystemContext / RequestContext / RequestTokenService"]
MW["middleware<br/>MultAccess"]
RO["route<br/>Route / Url"]
HP["helper<br/>Query / Form / Save / Delete / Validate / Builder"]
MD["model / extend / contract"]
MW --> SV
RO --> SV
HP --> RT
HP --> MD
RT --> SV
SV --> MD
关键约束
ThinkLibrary不直接持有system_* / system_file / system_queue域真实表实现。ThinkPlugsSystem同时承载系统后台壳层、system_*核心数据和存储中心,不再拆分独立Admin/Storage插件。ThinkPlugsWorker提供ProcessService / QueueService的真实实现,ThinkLibrary只保留门面。system_file迁移、文件管理和上传链路归ThinkPlugsSystem,业务插件只消费 Storage 门面。FaviconBuilder / ImageSliderVerify / JsonRpcHttpClient / JsonRpcHttpServer这类跨组件基础能力保留在ThinkLibrary,业务插件只消费,不重复实现。
目录规范
- 每个业务插件只保留
src / stc / tests三层顶级目录。 src下优先使用标准目录:controller / lang / model / route / service / view。- 只有确实需要命令入口的插件才增加
command目录。 src根目录只保留Service.php,以及确实需要全局函数时才保留common.php。- 不再新增
auth / runtime / system / support / integration / queue / storage / handle这类职责模糊目录;相关实现统一收敛到service或更明确的标准目录。
已有自动化守卫
- 代码位置边界:
ArchitectureBoundaryTest - 迁移归属边界:
MigrationOwnershipTest - Composer 依赖边界:
ComposerDependencyBoundaryTest
这些测试已经纳入根 composer test。