从处理程序获得的结果
编辑该页面从处理程序获得的结果
当一个消息处理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,){}公共函数__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,){}/ * * *@param对象查询美元* * |信封@return混合处理程序返回值* /公共函数查询(美元查询):混合{返回美元这- >处理(美元查询);}}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。