关于 ports-and-adapters
用于在 Symfony 应用中采用端口与适配器架构的开发技能,帮助领域规则与框架及供应商解耦,并组织用例、基础设施适配器和测试。
主要功能
- 01领域、应用与基础设施分层
- 02以接口定义端口
- 03可替换的基础设施适配器
- 04单元与集成测试指导
适用场景
- 01隔离领域规则与 Doctrine 或 HTTP
- 02替换存储或支付提供商
- 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 层。
默认工作流
- 使用纯 PHP 建模领域:实体和值对象不带 ORM 属性。
- 在领域层声明端口接口,例如仓储接口。
- 在应用层将用例编写为命令和处理器,并且只依赖端口。
- 在基础设施层实现适配器(Doctrine 仓储、API 客户端),并在领域层之外映射实体,使用 XML 映射。
- 在服务配置中将每个端口绑定到其适配器;控制器位于基础设施层。
防护措施
src/Domain/下的任何内容都不得导入 Symfony、Doctrine 或供应商 SDK 类。- 依赖方向朝内:基础设施了解领域,反之则不成立。
- 对于没有业务规则的 CRUD 模块,不要添加这些分层。
- 使用纯单元测试测试领域,并使用集成测试测试适配器。
渐进式披露
- 使用此文件了解执行方式和风险控制。
- 需要深入的实现细节时,查看参考资料。
输出约定
- 分层布局和端口接口。
- 适配器及其服务绑定。
- 不启动内核的领域单元测试。
参考资料
reference.md
评论
支持 Markdown