总结一下基于 Lumen 框架的项目架构
软件分层
(上层)接入层 → Api层 → 聚合模块 → 基础模块(下层)
分层规则:
- 上层可调用下层,下层不可调用下层
- 基础模块不可调用任何其它模块
- 同层之间不可有相互调用
模块结构
组件 | 名称 | 职责 |
---|---|---|
ServiceProvider | 服务提供者 | 作为模块入口,为程序提供依赖注入功能 |
Service | 服务 | 为子模块,负责统一调度【仓库】、【工厂】、【实体】及【队列】并聚合结果。相当于乐队中的【指挥】角色。 |
Repository | 仓库 | 数据访问层,负责从数据源获取数据并返回【实体】。数据源可包含但不限于:关系型数据库,缓存,文件,OSS等等 |
Factory | 工厂 | 负责将原始数据转换成实体。原始数据包含:仓库从数据源取回的数据、外部传入的数据 |
Entity | 实体 | 承载了本领域的所有业务逻辑。实体包含属性和行为。对一个领域进行抽象可能会形成多个实体,甚至嵌套的实体 |
Job | 队列 | 管理入队和出队。定义了队列名称和队列连接。只含本领域相关的操作 |
本作品采用《CC 协议》,转载必须注明作者和本文链接
感觉有点过度设计了。