关于 cqrs-and-handlers
面向 Symfony 的 CQRS Skill,使用独立的命令与查询总线及专属处理器组织用例。内容涉及消息设计、总线配置、分发方式和测试。
主要功能
- 01分离命令与查询总线
- 02只读消息类
- 03每条消息对应一个处理器
- 04命令总线中间件配置
- 05控制器分发模式
适用场景
- 01分离状态变更与读取
- 02添加命令及其处理器
- 03添加查询及其处理器
- 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)
适用场景
- 通过独立的命令总线和查询总线分离写入与读取。
- 某项服务既会改变状态,也会返回用于显示的数据。
- 将一个用例添加为命令或查询,并为其配置专属处理器。
默认工作流
- 为用例命名:命令会改变状态,查询会返回数据。
- 将消息编写为只读类,并为其配置且仅配置一个处理器。
- 配置独立的命令总线和查询总线;为命令总线添加
validation和doctrine_transaction中间件。 - 通过小型接口注入总线,或使用带有
#[Target]的原生总线。 - 从精简的控制器分派消息,并返回查询结果或新 ID。
防护原则
- 命令不返回任何内容,最多只返回其创建的 ID。
- 查询没有副作用,因此可以缓存和重试。
- 每条消息只对应一个处理器;处理器不会再向自己所服务的总线分派消息。
- 复杂查询的读取模型并非必需:当查询超出实体的适用范围时再添加。
渐进式披露
- 使用此文件了解执行方式和风险控制。
- 需要深入了解实现细节时,打开参考文档。
输出约定
- 命令、查询及其处理器。
- 总线配置及其中间件。
- 处理器测试,以及通过控制器进行的功能测试。
参考
reference.md
评论
支持 Markdown