从处理程序获得的结果

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 5.1,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

从处理程序获得的结果

当一个消息处理HandleMessageMiddleware添加一个HandledStamp为每个对象的消息处理。你可以使用这个处理程序的返回值(s):

1 2 3 4 5 6 7 8 9 10 11
使用ob娱乐下载\组件\信使\MessageBusInterface;使用ob娱乐下载\组件\信使\邮票\HandledStamp;美元信封=美元messageBus- >调度(SomeMessage ());/ /获取返回的值的最后一条消息处理程序美元handledStamp=美元信封- >最后(HandledStamp::类);美元handledStamp- >getResult ();/ /或者信息的处理程序美元handledStamps=美元信封- >(HandledStamp::类);

使用命令与查询公交车

信使在CQRS架构组件可以使用命令与查询公交车的中央部分应用程序。Martin Fowler的读篇关于CQRS了解更多,如何配置多个公共汽车

查询通常是同步,将处理一次,得到的结果处理程序是一个常见的需求。

一个HandleTrait得到的结果存在同步处理时的处理程序。它还确保注册一个处理程序。的HandleTrait可以用在任何类,有吗messageBus美元属性:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31
/ / src /行动/ ListItems.php名称空间应用程序\行动;使用应用程序\消息\ListItemsQuery;使用应用程序\MessageHandler\ListItemsQueryResult;使用ob娱乐下载\组件\信使\HandleTrait;使用ob娱乐下载\组件\信使\MessageBusInterface;listitem{使用HandleTrait;公共函数__construct(MessageBusInterface美元messageBus){美元- >messageBus =美元messageBus;}公共函数__invoke(){美元结果=美元- >查询(ListItemsQuery (/ *……* /));/ /做一些结果/ /……}/ /创建这样的一个方法是可选的,但允许类型提示结果私人函数查询(ListItemsQuery美元查询):ListItemsQueryResult{返回美元- >处理(美元查询);}}

因此,您可以使用创建命令与查询公共汽车类的特征。例如,您可以创建一个特殊的QueryBus类和注入它无论你需要查询公共汽车而不是行为MessageBusInterface:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25日26日
/ / src / MessageBus / QueryBus.php名称空间应用程序\MessageBus;使用ob娱乐下载\组件\信使\信封;使用ob娱乐下载\组件\信使\HandleTrait;使用ob娱乐下载\组件\信使\MessageBusInterface;QueryBus{使用HandleTrait;公共函数__construct(MessageBusInterface美元messageBus){美元- >messageBus =美元messageBus;}/ * * *@param对象查询美元* * |信封@return混合处理程序返回值* /公共函数查询(美元查询){返回美元- >处理(美元查询);}}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。