我想我在文档中遗漏了一些东西,但问题很简单。
假设我有一条关于 class 的消息,MessageOne
并且MessageTwo
extends MessageOne
。
我也有MessageOneHandler
哪个应该处理MessageOne
:
__invoke(MessageOne $messageOne)
并且MessageTwoHandler
应该只处理MessageTwo
:
__invoke(MessageTwo $messageTwo)
问题是何时MessageTwo
调度它由MessageHandlerOne
和处理MessageHandlerTwo
。是的,由于继承,这是完全明智的,一切在逻辑上都是正确的,但是有什么“symfony”方法可以防止这种情况发生吗?
当然,我可以通过重做这些类的继承来解决这个问题,但是有没有更好的方法呢?
此外debug:messenger
,按预期显示所有内容,每个消息类一个处理程序,没有继承问题。