SuperAPI AI 工具集

cqrs-and-handlers

通用与其它

查看项目

更新于 10-15 21:08

技能介绍

用途:在 Symfony 项目中实现 CQRS,把改变状态的写操作与返回数据的读操作分离,使用 Messenger 组件配置独立的命令总线与查询总线。

主要能力:为每个用例定义只读消息类(命令或查询)并配唯一处理器;配置命令总线与查询总线,命令总线可挂载 validation 与 doctrine_transaction 中间件;通过小型接口注入总线,或使用原生总线配合 #[Target];在薄控制器中分发,返回查询结果或新建 id。

使用方式:先命名用例,命令改变状态、查询返回数据;消息写成 readonly 类,每个消息恰好一个处理器;配置两条独立总线并设置中间件;从控制器分发。

适用场景:需要读写分离、命令与查询职责清晰、希望查询可缓存与重试的项目。

限制与约束:命令不返回内容,最多返回其创建的 id;查询无副作用;每个消息仅一个处理器,处理器不得回调其所属总线;复杂查询的读模型为可选项,仅在查询超出实体能力时添加。

输出契约:命令、查询及其处理器,总线配置与中间件,处理器测试以及通过控制器的功能测试。

其他实现细节与深度说明见 reference.md,资料未提供具体代码示例与安装命令。