From 83874b67e002ea9871f9a47423f921fd5c5fcd04 Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 5 Jun 2026 15:04:10 +0200 Subject: [PATCH] perf(event-bus): cache event propagation check --- packages/event-bus/src/GenericEventBus.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/event-bus/src/GenericEventBus.php b/packages/event-bus/src/GenericEventBus.php index 918932853c..6db2932ffe 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; } }