Skip to content

Commit a6dc8a1

Browse files
authored
perf(event-bus): cache event propagation check (#2157)
1 parent c699ab8 commit a6dc8a1

1 file changed

Lines changed: 3 additions & 4 deletions

File tree

packages/event-bus/src/GenericEventBus.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,14 @@ private function resolveHandlers(string|object $event): array
6161
private function getCallable(array $eventHandlers): EventBusMiddlewareCallable
6262
{
6363
$callable = new EventBusMiddlewareCallable(function (string|object $event) use ($eventHandlers): void {
64+
$eventStopsPropagation = is_object($event) && reflect($event)->hasAttribute(StopsPropagation::class);
65+
6466
foreach ($eventHandlers as $eventHandler) {
6567
$callable = $eventHandler->normalizeCallable($this->container);
6668

6769
$callable($event);
6870

69-
if (
70-
is_object($event) && reflect($event)->hasAttribute(StopsPropagation::class)
71-
|| ($eventHandler->handler->handler ?? null)?->hasAttribute(StopsPropagation::class)
72-
) {
71+
if ($eventStopsPropagation || ($eventHandler->handler->handler ?? null)?->hasAttribute(StopsPropagation::class)) {
7372
break;
7473
}
7574
}

0 commit comments

Comments
 (0)