mcpField
C
cqrs-and-handlers

cqrs-and-handlers

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

关于 cqrs-and-handlers

面向 Symfony 的 CQRS Skill,使用独立的命令与查询总线及专属处理器组织用例。内容涉及消息设计、总线配置、分发方式和测试。

主要功能

  1. 01分离命令与查询总线
  2. 02只读消息类
  3. 03每条消息对应一个处理器
  4. 04命令总线中间件配置
  5. 05控制器分发模式

适用场景

  1. 01分离状态变更与读取
  2. 02添加命令及其处理器
  3. 03添加查询及其处理器
  4. 04测试处理器和控制器流程

安装

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

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

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

附带文件reference.md

详细介绍

Cqrs And Handlers(Symfony)

适用场景

  • 通过独立的命令总线和查询总线分离写入与读取。
  • 某项服务既会改变状态,也会返回用于显示的数据。
  • 将一个用例添加为命令或查询,并为其配置专属处理器。

默认工作流

  1. 为用例命名:命令会改变状态,查询会返回数据。
  2. 将消息编写为只读类,并为其配置且仅配置一个处理器。
  3. 配置独立的命令总线和查询总线;为命令总线添加 validation 和 doctrine_transaction 中间件。
  4. 通过小型接口注入总线,或使用带有 #[Target] 的原生总线。
  5. 从精简的控制器分派消息,并返回查询结果或新 ID。

防护原则

  • 命令不返回任何内容,最多只返回其创建的 ID。
  • 查询没有副作用,因此可以缓存和重试。
  • 每条消息只对应一个处理器;处理器不会再向自己所服务的总线分派消息。
  • 复杂查询的读取模型并非必需:当查询超出实体的适用范围时再添加。

渐进式披露

  • 使用此文件了解执行方式和风险控制。
  • 需要深入了解实现细节时,打开参考文档。

输出约定

  • 命令、查询及其处理器。
  • 总线配置及其中间件。
  • 处理器测试,以及通过控制器进行的功能测试。

参考

  • reference.md

评论

支持 Markdown