Skip to content
This repository was archived by the owner on Feb 5, 2021. It is now read-only.

Commit c6cd977

Browse files
authored
Merge pull request #14 from mkilmanas/feature/enable-symfony-container-autoconfiguration
Add DIC autoconfiguration possibility for modern containers
2 parents 44e3804 + 36dfd8e commit c6cd977

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

Diff for: src/ServiceContainer/ContextServiceExtension.php

+7
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,13 @@ public function process(ContainerBuilder $container): void
9898
$this->crossContainerProcessor->process($scenarioContainer);
9999
}
100100

101+
// This feature was introduced only in symfony/dependency-injection v3.3
102+
// So we are adding the feature for modern containers and leaving as-is for older ones
103+
if (method_exists($scenarioContainer, 'registerForAutoconfiguration')) {
104+
$scenarioContainer->registerForAutoconfiguration(\Behat\Behat\Context\Context::class)
105+
->addTag(ContextRegistryPass::CONTEXT_SERVICE_TAG);
106+
}
107+
101108
$scenarioContainer->addCompilerPass(new ContextRegistryPass($container->getDefinition('fob_context_service.context_registry')));
102109
$scenarioContainer->compile();
103110
}

Diff for: src/ServiceContainer/Scenario/ContextRegistryPass.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
*/
2323
final class ContextRegistryPass implements CompilerPassInterface
2424
{
25+
const CONTEXT_SERVICE_TAG = 'fob.context_service';
26+
2527
/**
2628
* @var Definition
2729
*/
@@ -40,7 +42,7 @@ public function __construct(Definition $contextRegistryDefinition)
4042
*/
4143
public function process(ContainerBuilder $container): void
4244
{
43-
$taggedServices = $container->findTaggedServiceIds('fob.context_service');
45+
$taggedServices = $container->findTaggedServiceIds(self::CONTEXT_SERVICE_TAG);
4446

4547
foreach ($taggedServices as $id => $tags) {
4648
$this->contextRegistryDefinition->addMethodCall(

0 commit comments

Comments
 (0)