Symfony Clean架构
#php #symfony #cleanarchitecture

我开始在我的Symfony Projects上实施干净的体系结构。

您可以在https://framagit.org/small/symfony-clean-architecture

的framagit上找到第一版的骨架

清洁体系结构实现

Clean architecture cone image

干净的体系结构打算隔离每天更改技术代码时很少更改的业务代码。

  • 实体是业务对象
    • 他们代表数据(在商业意义上而不是ORM)
    • 他们执行业务规则
  • 用例是实施申请业务流程和业务规则
    • 用例类
    • 请求
    • 响应
    • 请求
  • 接口适配器
    • 控制器(HTTP处理)
    • 网关(接口)
    • 演示者(将驱动程序响应格式化的类)
    • 经理(数据库和其他)
  • 终点是框架和驱动程序
    • 输入驱动程序(HTTP,消息经纪接收,Websocket ...)
    • 输出驱动程序(ORM实施,消息代理消息排放,其他数据库驱动程序)
    • 框架代码

骨架实现

在此实施中,我们有两个主要目录:

  • “域”:所有应用程序和业务特定规则代码
  • “基础架构”:框架和设备上附加的所有技术代码

您可以根据外部设备自由构建此代码

域目录是结构化目录,代表您的应用程序:

  • 接口适配器
    • 目录“网关”包含所有合同(类接口)
    • 目录“控制器”包含所有输入HTTP管理器
    • 目录“经理”包含所有其他经理(ORM经理,消息经纪人服务...)
    • 主持人:正式化经理或控制器答案的类(例如HTML代码)
  • 应用程序业务规则
    • 请求:将要求数据正式为用例正式的课程
    • 回答:类用用例正式答案数据的课程
    • 用户酶:实施应用程序业务规则的课程
  • 实体
    • 实现业务规则和数据组织的课程