From 194a62363eded0d4bca6d6c8c94060ddb8563c64 Mon Sep 17 00:00:00 2001 From: Nicolas Rigaud Date: Wed, 20 Mar 2024 15:07:11 +0100 Subject: [PATCH] Make trait internal, improve readability --- .../Workflow/Event/EventNameTrait.php | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/Symfony/Component/Workflow/Event/EventNameTrait.php b/src/Symfony/Component/Workflow/Event/EventNameTrait.php index 141a357a4e563..6b8a1ed9cf4d9 100644 --- a/src/Symfony/Component/Workflow/Event/EventNameTrait.php +++ b/src/Symfony/Component/Workflow/Event/EventNameTrait.php @@ -15,19 +15,11 @@ /** * @author Nicolas Rigaud + * + * @internal */ trait EventNameTrait { - /** - * Get the event name as lowercase string. - * - * Example: EnterEvent => enter - */ - public static function getName(): string - { - return strtolower(substr(substr(static::class, strrpos(static::class, '\\') + 1), 0, -5)); - } - /** * Get event name for workflow and transition. * @@ -50,10 +42,20 @@ private static function getNameForPlace(?string $workflowName, ?string $placeNam private static function computeName(?string $workflowName, ?string $transitionOrPlaceName): string { - if (null !== $transitionOrPlaceName && null === $workflowName) { - throw new \InvalidArgumentException('Missing workflow name.'); + $eventName = strtolower(basename(str_replace('\\', '/', static::class), 'Event')); + + if (null === $workflowName) { + if (null !== $transitionOrPlaceName) { + throw new \InvalidArgumentException('Missing workflow name.'); + } + + return sprintf('workflow.%s', $eventName); + } + + if (null === $transitionOrPlaceName) { + return sprintf('workflow.%s.%s', $workflowName, $eventName); } - return implode('.', array_filter(['workflow', $workflowName, self::getName(), $transitionOrPlaceName], \is_string(...))); + return sprintf('workflow.%s.%s.%s', $workflowName, $eventName, $transitionOrPlaceName); } }