diff --git a/src/Symfony/Component/Workflow/CHANGELOG.md b/src/Symfony/Component/Workflow/CHANGELOG.md index 891a66c713402..619a4227acdfb 100644 --- a/src/Symfony/Component/Workflow/CHANGELOG.md +++ b/src/Symfony/Component/Workflow/CHANGELOG.md @@ -4,6 +4,7 @@ CHANGELOG 5.1.0 ----- + * Added parameter type hinting where possible. * Added context to `TransitionException` and its child classes whenever they are thrown in `Workflow::apply()` * Added `Registry::has()` to check if a workflow exists * Added support for `$context[Workflow::DISABLE_ANNOUNCE_EVENT] = true` when calling `workflow->apply()` to not fire the announce event diff --git a/src/Symfony/Component/Workflow/Definition.php b/src/Symfony/Component/Workflow/Definition.php index 210e7569579ba..ae8f0b040c3ce 100644 --- a/src/Symfony/Component/Workflow/Definition.php +++ b/src/Symfony/Component/Workflow/Definition.php @@ -76,7 +76,7 @@ public function getMetadataStore(): MetadataStoreInterface return $this->metadataStore; } - private function setInitialPlaces($places = null) + private function setInitialPlaces($places = null): void { if (!$places) { return; @@ -93,7 +93,7 @@ private function setInitialPlaces($places = null) $this->initialPlaces = $places; } - private function addPlace(string $place) + private function addPlace(string $place): void { if (!\count($this->places)) { $this->initialPlaces = [$place]; @@ -102,7 +102,7 @@ private function addPlace(string $place) $this->places[$place] = $place; } - private function addTransition(Transition $transition) + private function addTransition(Transition $transition): void { $name = $transition->getName(); diff --git a/src/Symfony/Component/Workflow/DefinitionBuilder.php b/src/Symfony/Component/Workflow/DefinitionBuilder.php index 19e9067edda98..eada597f8d75f 100644 --- a/src/Symfony/Component/Workflow/DefinitionBuilder.php +++ b/src/Symfony/Component/Workflow/DefinitionBuilder.php @@ -37,10 +37,7 @@ public function __construct(array $places = [], array $transitions = []) $this->addTransitions($transitions); } - /** - * @return Definition - */ - public function build() + public function build(): Definition { return new Definition($this->places, $this->transitions, $this->initialPlaces, $this->metadataStore); } @@ -50,7 +47,7 @@ public function build() * * @return $this */ - public function clear() + public function clear(): self { $this->places = []; $this->transitions = []; @@ -65,7 +62,7 @@ public function clear() * * @return $this */ - public function setInitialPlaces($initialPlaces) + public function setInitialPlaces($initialPlaces): self { $this->initialPlaces = $initialPlaces; @@ -75,7 +72,7 @@ public function setInitialPlaces($initialPlaces) /** * @return $this */ - public function addPlace(string $place) + public function addPlace(string $place): self { if (!$this->places) { $this->initialPlaces = $place; @@ -91,7 +88,7 @@ public function addPlace(string $place) * * @return $this */ - public function addPlaces(array $places) + public function addPlaces(array $places): self { foreach ($places as $place) { $this->addPlace($place); @@ -105,7 +102,7 @@ public function addPlaces(array $places) * * @return $this */ - public function addTransitions(array $transitions) + public function addTransitions(array $transitions): self { foreach ($transitions as $transition) { $this->addTransition($transition); @@ -117,7 +114,7 @@ public function addTransitions(array $transitions) /** * @return $this */ - public function addTransition(Transition $transition) + public function addTransition(Transition $transition): self { $this->transitions[] = $transition; @@ -127,7 +124,7 @@ public function addTransition(Transition $transition) /** * @return $this */ - public function setMetadataStore(MetadataStoreInterface $metadataStore) + public function setMetadataStore(MetadataStoreInterface $metadataStore): self { $this->metadataStore = $metadataStore; diff --git a/src/Symfony/Component/Workflow/EventListener/AuditTrailListener.php b/src/Symfony/Component/Workflow/EventListener/AuditTrailListener.php index 95a9590cef4b2..011ac376daffa 100644 --- a/src/Symfony/Component/Workflow/EventListener/AuditTrailListener.php +++ b/src/Symfony/Component/Workflow/EventListener/AuditTrailListener.php @@ -27,26 +27,26 @@ public function __construct(LoggerInterface $logger) $this->logger = $logger; } - public function onLeave(Event $event) + public function onLeave(Event $event): void { foreach ($event->getTransition()->getFroms() as $place) { $this->logger->info(sprintf('Leaving "%s" for subject of class "%s" in workflow "%s".', $place, \get_class($event->getSubject()), $event->getWorkflowName())); } } - public function onTransition(Event $event) + public function onTransition(Event $event): void { $this->logger->info(sprintf('Transition "%s" for subject of class "%s" in workflow "%s".', $event->getTransition()->getName(), \get_class($event->getSubject()), $event->getWorkflowName())); } - public function onEnter(Event $event) + public function onEnter(Event $event): void { foreach ($event->getTransition()->getTos() as $place) { $this->logger->info(sprintf('Entering "%s" for subject of class "%s" in workflow "%s".', $place, \get_class($event->getSubject()), $event->getWorkflowName())); } } - public static function getSubscribedEvents() + public static function getSubscribedEvents(): iterable { return [ 'workflow.leave' => ['onLeave'], diff --git a/src/Symfony/Component/Workflow/EventListener/GuardExpression.php b/src/Symfony/Component/Workflow/EventListener/GuardExpression.php index c7ac9cede77f0..b8f355c7ec062 100644 --- a/src/Symfony/Component/Workflow/EventListener/GuardExpression.php +++ b/src/Symfony/Component/Workflow/EventListener/GuardExpression.php @@ -24,12 +24,12 @@ public function __construct(Transition $transition, string $expression) $this->expression = $expression; } - public function getTransition() + public function getTransition(): Transition { return $this->transition; } - public function getExpression() + public function getExpression(): string { return $this->expression; } diff --git a/src/Symfony/Component/Workflow/EventListener/GuardListener.php b/src/Symfony/Component/Workflow/EventListener/GuardListener.php index 4badb75afbd31..1531df7e9fb80 100644 --- a/src/Symfony/Component/Workflow/EventListener/GuardListener.php +++ b/src/Symfony/Component/Workflow/EventListener/GuardListener.php @@ -44,7 +44,7 @@ public function __construct(array $configuration, ExpressionLanguage $expression $this->validator = $validator; } - public function onTransition(GuardEvent $event, string $eventName) + public function onTransition(GuardEvent $event, string $eventName): void { if (!isset($this->configuration[$eventName])) { return; @@ -63,7 +63,7 @@ public function onTransition(GuardEvent $event, string $eventName) } } - private function validateGuardExpression(GuardEvent $event, string $expression) + private function validateGuardExpression(GuardEvent $event, string $expression): void { if (!$this->expressionLanguage->evaluate($expression, $this->getVariables($event))) { $blocker = TransitionBlocker::createBlockedByExpressionGuardListener($expression); diff --git a/src/Symfony/Component/Workflow/Marking.php b/src/Symfony/Component/Workflow/Marking.php index 974a040b0d74f..7c5db459c1193 100644 --- a/src/Symfony/Component/Workflow/Marking.php +++ b/src/Symfony/Component/Workflow/Marking.php @@ -30,22 +30,22 @@ public function __construct(array $representation = []) } } - public function mark(string $place) + public function mark(string $place): void { $this->places[$place] = 1; } - public function unmark(string $place) + public function unmark(string $place): void { unset($this->places[$place]); } - public function has(string $place) + public function has(string $place): bool { return isset($this->places[$place]); } - public function getPlaces() + public function getPlaces(): array { return $this->places; } diff --git a/src/Symfony/Component/Workflow/Transition.php b/src/Symfony/Component/Workflow/Transition.php index f5a19b1049e23..683ca8495d0de 100644 --- a/src/Symfony/Component/Workflow/Transition.php +++ b/src/Symfony/Component/Workflow/Transition.php @@ -32,17 +32,17 @@ public function __construct(string $name, $froms, $tos) $this->tos = (array) $tos; } - public function getName() + public function getName(): string { return $this->name; } - public function getFroms() + public function getFroms(): array { return $this->froms; } - public function getTos() + public function getTos(): array { return $this->tos; } diff --git a/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php b/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php index 023ca5df5e047..661c8e09d0470 100644 --- a/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php +++ b/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php @@ -19,7 +19,7 @@ */ class StateMachineValidator implements DefinitionValidatorInterface { - public function validate(Definition $definition, string $name) + public function validate(Definition $definition, string $name): void { $transitionFromNames = []; foreach ($definition->getTransitions() as $transition) { diff --git a/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php b/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php index 32cc80ef1efad..cf112ebbce761 100644 --- a/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php +++ b/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php @@ -27,7 +27,7 @@ public function __construct(bool $singlePlace = false) $this->singlePlace = $singlePlace; } - public function validate(Definition $definition, string $name) + public function validate(Definition $definition, string $name): void { // Make sure all transitions for one place has unique name. $places = array_fill_keys($definition->getPlaces(), []); diff --git a/src/Symfony/Component/Workflow/Workflow.php b/src/Symfony/Component/Workflow/Workflow.php index f3b290fc394ee..d4b2d2ba1a878 100644 --- a/src/Symfony/Component/Workflow/Workflow.php +++ b/src/Symfony/Component/Workflow/Workflow.php @@ -51,7 +51,7 @@ public function __construct(Definition $definition, MarkingStoreInterface $marki /** * {@inheritdoc} */ - public function getMarking(object $subject) + public function getMarking(object $subject): Marking { $marking = $this->markingStore->getMarking($subject); @@ -93,7 +93,7 @@ public function getMarking(object $subject) /** * {@inheritdoc} */ - public function can(object $subject, string $transitionName) + public function can(object $subject, string $transitionName): bool { $transitions = $this->definition->getTransitions(); $marking = $this->getMarking($subject); @@ -152,7 +152,7 @@ public function buildTransitionBlockerList(object $subject, string $transitionNa /** * {@inheritdoc} */ - public function apply(object $subject, string $transitionName, array $context = []) + public function apply(object $subject, string $transitionName, array $context = []): Marking { $marking = $this->getMarking($subject); @@ -220,7 +220,7 @@ public function apply(object $subject, string $transitionName, array $context = /** * {@inheritdoc} */ - public function getEnabledTransitions(object $subject) + public function getEnabledTransitions(object $subject): iterable { $enabledTransitions = []; $marking = $this->getMarking($subject); @@ -238,7 +238,7 @@ public function getEnabledTransitions(object $subject) /** * {@inheritdoc} */ - public function getName() + public function getName(): string { return $this->name; } @@ -246,7 +246,7 @@ public function getName() /** * {@inheritdoc} */ - public function getDefinition() + public function getDefinition(): Definition { return $this->definition; } @@ -254,7 +254,7 @@ public function getDefinition() /** * {@inheritdoc} */ - public function getMarkingStore() + public function getMarkingStore(): MarkingStoreInterface { return $this->markingStore; } diff --git a/src/Symfony/Component/Workflow/WorkflowInterface.php b/src/Symfony/Component/Workflow/WorkflowInterface.php index 39d9361a5fe72..80fe23b543d00 100644 --- a/src/Symfony/Component/Workflow/WorkflowInterface.php +++ b/src/Symfony/Component/Workflow/WorkflowInterface.php @@ -27,14 +27,14 @@ interface WorkflowInterface * * @throws LogicException */ - public function getMarking(object $subject); + public function getMarking(object $subject): Marking; /** * Returns true if the transition is enabled. * * @return bool true if the transition is enabled */ - public function can(object $subject, string $transitionName); + public function can(object $subject, string $transitionName): bool; /** * Builds a TransitionBlockerList to know why a transition is blocked. @@ -48,29 +48,20 @@ public function buildTransitionBlockerList(object $subject, string $transitionNa * * @throws LogicException If the transition is not applicable */ - public function apply(object $subject, string $transitionName, array $context = []); + public function apply(object $subject, string $transitionName, array $context = []): Marking; /** * Returns all enabled transitions. * * @return Transition[] All enabled transitions */ - public function getEnabledTransitions(object $subject); + public function getEnabledTransitions(object $subject): iterable; - /** - * @return string - */ - public function getName(); + public function getName(): string; - /** - * @return Definition - */ - public function getDefinition(); + public function getDefinition(): Definition; - /** - * @return MarkingStoreInterface - */ - public function getMarkingStore(); + public function getMarkingStore(): MarkingStoreInterface; public function getMetadataStore(): MetadataStoreInterface; }