Skip to content

Commit 37395fd

Browse files
author
Tobias Wojtylak
committed
Define sd.multistep.step_checker.default as default multistep stepRequiredChecker
1 parent 35b2514 commit 37395fd

2 files changed

Lines changed: 18 additions & 6 deletions

File tree

src/DependencyInjection/Configuration.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99

1010
namespace solutionDrive\MultiStepBundle\DependencyInjection;
1111

12-
use solutionDrive\MultiStepBundle\StepChecker\DefaultStepRequiredChecker;
13-
use solutionDrive\MultiStepBundle\StepChecker\StepRequiredCheckerInterface;
1412
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
1513
use Symfony\Component\Config\Definition\ConfigurationInterface;
1614

@@ -43,8 +41,7 @@ public function getConfigTreeBuilder()
4341
->end()
4442
->booleanNode('skippable')->defaultFalse()->end()
4543
->scalarNode('stepRequiredChecker')
46-
->prototype(StepRequiredCheckerInterface::class)
47-
->default(new DefaultStepRequiredChecker())
44+
->default('sd.multistep.step_checker.default')
4845
->end()
4946
->end()
5047
->end()

src/DependencyInjection/MultiStepExtension.php

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Symfony\Component\Config\FileLocator;
1313
use Symfony\Component\DependencyInjection\ContainerBuilder;
1414
use Symfony\Component\DependencyInjection\Loader;
15+
use Symfony\Component\DependencyInjection\Reference;
1516
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
1617

1718
class MultiStepExtension extends Extension
@@ -38,8 +39,22 @@ public function load(array $configs, ContainerBuilder $container)
3839
private function parseFlows(array $flowsArray, ContainerBuilder $container): void
3940
{
4041
$registryDefinition = $container->getDefinition('sd.multistep.flow_registry');
41-
foreach ($flowsArray as $id => $config) {
42-
$registryDefinition->addMethodCall('addByConfig', [$id, $config]);
42+
foreach ($flowsArray as $id => $stepConfig) {
43+
$stepConfig = $this->getStepOptions($stepConfig);
44+
$registryDefinition->addMethodCall('addByConfig', [$id, $stepConfig]);
4345
}
4446
}
47+
48+
/**
49+
* @param string[] $stepConfig
50+
*/
51+
private function getStepOptions(array $stepConfig)
52+
{
53+
$options = $stepConfig;
54+
if (isset($options['stepRequiredChecker'])) {
55+
$options['stepRequiredChecker'] = new Reference($options['stepRequiredChecker']);
56+
unset($options['stepRequiredChecker']);
57+
}
58+
return $options;
59+
}
4560
}

0 commit comments

Comments
 (0)