我在 Symfony 4.4 应用程序中有一个问题,其中有十几个侦听器正在侦听扩展的单个事件Symfony\Contracts\EventDispatcher\Event
。问题是,如果其中一个侦听器抛出异常,那么后面的侦听器都不会被执行。
我正在寻找一种从侦听器中捕获异常的方法,这样就不会发生这种情况。我尝试扩展Symfony\Component\EventDispatcher\EventDispatcher
和覆盖该callListeners()
方法以包含try
/catch
以便我可以记录异常但继续执行。但我不知道如何告诉 Symfony 使用我的EventDispatcher
而不是它自己的。
我不知道这是否是解决这个问题的推荐方法。知道如何让这个工作,或者是否有任何其他选择?