mcpField
P
ports-and-adapters

ports-and-adapters

github.com/dev-toolings开发22782 次安装3 周前更新
代码仓库

关于 ports-and-adapters

用于在 Symfony 应用中采用端口与适配器架构的开发技能,帮助领域规则与框架及供应商解耦,并组织用例、基础设施适配器和测试。

主要功能

  1. 01领域、应用与基础设施分层
  2. 02以接口定义端口
  3. 03可替换的基础设施适配器
  4. 04单元与集成测试指导

适用场景

  1. 01隔离领域规则与 Doctrine 或 HTTP
  2. 02替换存储或支付提供商
  3. 03按清晰依赖组织限界上下文

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dev-toolings/superpowers-symfony --skill ports-and-adapters

安装后在 Claude Code 中输入/ports-and-adapters确认已加载。

附带文件reference.md

详细介绍

端口与适配器(Symfony)

适用场景

  • 领域规则必须不依赖 Doctrine、HTTP 或供应商 SDK。
  • 基础设施依赖(存储、支付、邮件服务提供商)必须可以替换或模拟。
  • 将限界上下文划分为 Domain、Application 和 Infrastructure 层。

默认工作流

  1. 使用纯 PHP 建模领域:实体和值对象不带 ORM 属性。
  2. 在领域层声明端口接口,例如仓储接口。
  3. 在应用层将用例编写为命令和处理器,并且只依赖端口。
  4. 在基础设施层实现适配器(Doctrine 仓储、API 客户端),并在领域层之外映射实体,使用 XML 映射。
  5. 在服务配置中将每个端口绑定到其适配器;控制器位于基础设施层。

防护措施

  • src/Domain/ 下的任何内容都不得导入 Symfony、Doctrine 或供应商 SDK 类。
  • 依赖方向朝内:基础设施了解领域,反之则不成立。
  • 对于没有业务规则的 CRUD 模块,不要添加这些分层。
  • 使用纯单元测试测试领域,并使用集成测试测试适配器。

渐进式披露

  • 使用此文件了解执行方式和风险控制。
  • 需要深入的实现细节时,查看参考资料。

输出约定

  • 分层布局和端口接口。
  • 适配器及其服务绑定。
  • 不启动内核的领域单元测试。

参考资料

  • reference.md

评论

支持 Markdown