从命令总线返回值

时间:2015-03-04 04:20:47

标签: java c# php domain-driven-design

我已经阅读了很多项目中使用的命令总线,它非常棒。我继续阅读,但命令不应该向控制器返回任何内容;但是,有些时候我觉得我必须绝对返回一个值,例如:

$product = $this->dispatch(AddProductCommand::class);

return redirect()->route('route', $attributes = ['product_slug' => $product->slug]);

我需要抓住新创建的产品的slug,因为重定向路线需要slug。这是不好的做法,如果是这样的话会有什么更清洁的方法呢?

1 个答案:

答案 0 :(得分:0)

当您使用同步设计的Web框架时,无法以完全异步的方式实现它。

如果您使用允许异步请求的框架或(甚至更好)您从后端分离UI关注点(如重定向),您可以使用触发重定向的回调订阅ProductAdded事件。