diff --git a/packages/event-bus/src/GenericEventBus.php b/packages/event-bus/src/GenericEventBus.php index 918932853..6db2932ff 100644 --- a/packages/event-bus/src/GenericEventBus.php +++ b/packages/event-bus/src/GenericEventBus.php @@ -61,15 +61,14 @@ private function resolveHandlers(string|object $event): array private function getCallable(array $eventHandlers): EventBusMiddlewareCallable { $callable = new EventBusMiddlewareCallable(function (string|object $event) use ($eventHandlers): void { + $eventStopsPropagation = is_object($event) && reflect($event)->hasAttribute(StopsPropagation::class); + foreach ($eventHandlers as $eventHandler) { $callable = $eventHandler->normalizeCallable($this->container); $callable($event); - if ( - is_object($event) && reflect($event)->hasAttribute(StopsPropagation::class) - || ($eventHandler->handler->handler ?? null)?->hasAttribute(StopsPropagation::class) - ) { + if ($eventStopsPropagation || ($eventHandler->handler->handler ?? null)?->hasAttribute(StopsPropagation::class)) { break; } }