用途:当领域规则不应依赖 Doctrine、HTTP 或厂商 SDK,或某项基础设施依赖需要可替换、可伪造时,用本技能在 Symfony 中落地六边形架构,把限界上下文划分为 Domain、Application、Infrastructure 三层。
主要能力与默认流程:一、用纯 PHP 建模领域,实体与值对象不带 ORM 属性;二、在领域内以接口声明端口,例如仓储接口;三、在应用层以命令与处理器编写用例,只依赖端口;四、在基础设施层实现适配器(Doctrine 仓储、API 客户端),并在领域之外用 XML 映射实体;五、在服务配置中把每个端口绑定到对应适配器,控制器放在基础设施层。
护栏:src/Domain/ 下不得导入 Symfony、Doctrine 或厂商 SDK 类;依赖只能向内,基础设施认识领域,反之不行;没有业务规则的 CRUD 模块不要套用这些分层;领域用纯单元测试,适配器用集成测试。
渐进披露:本文件用于执行姿态与风险控制,需要深入实现细节时再打开引用文件。输出契约包括分层布局与端口接口、适配器及其服务绑定、不启动内核的领域单元测试。参考资料见 reference.md。
限制:资料未提供具体安装命令、版本要求、代码示例与配置片段,相关细节暂未提供。