Skip to content

Commit 955a0ba

Browse files
[FrameworkBundle] Perform-no-deep-merging on workflow transitions' from/to configs
1 parent 1a60616 commit 955a0ba

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -505,26 +505,20 @@ private function addWorkflowSection(ArrayNodeDefinition $rootNode): void
505505
->end()
506506
->arrayNode('transitions')
507507
->beforeNormalization()
508-
->always()
509-
->then(function ($transitions) {
508+
->always(static function ($transitions) {
510509
if (!\is_array($transitions)) {
511510
throw new InvalidConfigurationException('The "transitions" option must be an array in workflow configuration.');
512511
}
513512

514-
// It's an indexed array, we let the validation occur
515-
if (isset($transitions[0]) && \is_array($transitions[0])) {
516-
return $transitions;
517-
}
518-
513+
$normalizedTransitions = [];
519514
foreach ($transitions as $name => $transition) {
520-
if (\is_array($transition) && \array_key_exists('name', $transition)) {
521-
continue;
515+
if (\is_string($name) && \is_array($transition)) {
516+
$transition['name'] ??= $name;
522517
}
523-
$transition['name'] = $name;
524-
$transitions[$name] = $transition;
518+
$normalizedTransitions[$name] = $transition;
525519
}
526520

527-
return $transitions;
521+
return $normalizedTransitions;
528522
})
529523
->end()
530524
->isRequired()
@@ -541,6 +535,7 @@ private function addWorkflowSection(ArrayNodeDefinition $rootNode): void
541535
->example('is_fully_authenticated() and is_granted(\'ROLE_JOURNALIST\') and subject.getTitle() == \'My first article\'')
542536
->end()
543537
->arrayNode('from')
538+
->performNoDeepMerging()
544539
->beforeNormalization()
545540
->ifString()
546541
->then(fn ($v) => [$v])
@@ -551,6 +546,7 @@ private function addWorkflowSection(ArrayNodeDefinition $rootNode): void
551546
->end()
552547
->end()
553548
->arrayNode('to')
549+
->performNoDeepMerging()
554550
->beforeNormalization()
555551
->ifString()
556552
->then(fn ($v) => [$v])

0 commit comments

Comments
 (0)