Allow to configure the application kernel's custom environment

This commit is contained in:
Kamil Kokot
2019-01-10 23:25:19 +01:00
parent 01f458149e
commit 8dcd3e9d4d
4 changed files with 26 additions and 7 deletions

View File

@@ -78,7 +78,7 @@ Feature: Autodiscovering the application kernel
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
{ {
$container->loadFromExtension('framework', [ $container->loadFromExtension('framework', [
'test' => $this->getEnvironment() === 'test', 'test' => true,
'secret' => 'Pigeon', 'secret' => 'Pigeon',
]); ]);
@@ -118,7 +118,7 @@ Feature: Autodiscovering the application kernel
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
{ {
$container->loadFromExtension('framework', [ $container->loadFromExtension('framework', [
'test' => $this->getEnvironment() === 'test', 'test' => true,
'secret' => 'Pigeon', 'secret' => 'Pigeon',
]); ]);
@@ -164,7 +164,7 @@ Feature: Autodiscovering the application kernel
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
{ {
$container->loadFromExtension('framework', [ $container->loadFromExtension('framework', [
'test' => $this->getEnvironment() === 'test', 'test' => true,
'secret' => 'Pigeon', 'secret' => 'Pigeon',
]); ]);
@@ -200,7 +200,7 @@ Feature: Autodiscovering the application kernel
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
{ {
$container->loadFromExtension('framework', [ $container->loadFromExtension('framework', [
'test' => $this->getEnvironment() === 'test', 'test' => true,
'secret' => 'Pigeon', 'secret' => 'Pigeon',
]); ]);

View File

@@ -57,3 +57,21 @@ Feature: Configuring application kernel
""" """
When I run Behat When I run Behat
Then it should pass Then it should pass
Scenario: Using configured environment
Given a Behat configuration containing:
"""
default:
extensions:
FriendsOfBehat\SymfonyExtension:
kernel:
environment: custom
"""
And a feature file containing:
"""
Feature:
Scenario:
Then the application kernel should have environment "custom"
"""
When I run Behat
Then it should pass

View File

@@ -83,7 +83,7 @@ Feature: Loading configured application kernel
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
{ {
$container->loadFromExtension('framework', [ $container->loadFromExtension('framework', [
'test' => $this->getEnvironment() === 'test', 'test' => true,
'secret' => 'Pigeon', 'secret' => 'Pigeon',
]); ]);
@@ -132,7 +132,7 @@ Feature: Loading configured application kernel
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
{ {
$container->loadFromExtension('framework', [ $container->loadFromExtension('framework', [
'test' => $this->getEnvironment() === 'test', 'test' => true,
'secret' => 'Pigeon', 'secret' => 'Pigeon',
]); ]);

View File

@@ -57,6 +57,7 @@ final class SymfonyExtension implements Extension
->children() ->children()
->scalarNode('path')->defaultNull()->end() ->scalarNode('path')->defaultNull()->end()
->scalarNode('class')->defaultNull()->end() ->scalarNode('class')->defaultNull()->end()
->scalarNode('environment')->defaultValue('test')->end()
->end() ->end()
->end() ->end()
->end() ->end()
@@ -98,7 +99,7 @@ final class SymfonyExtension implements Extension
private function loadKernel(ContainerBuilder $container, array $config): void private function loadKernel(ContainerBuilder $container, array $config): void
{ {
$definition = new Definition($config['class'], [ $definition = new Definition($config['class'], [
'test', $config['environment'],
true, true,
]); ]);
$definition->addMethodCall('boot'); $definition->addMethodCall('boot');