@@ -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