diff --git a/src/Configurator/ContainerConfigurator.php b/src/Configurator/ContainerConfigurator.php index 22ce207e2..ffe638fb0 100644 --- a/src/Configurator/ContainerConfigurator.php +++ b/src/Configurator/ContainerConfigurator.php @@ -32,7 +32,7 @@ public function unconfigure(Recipe $recipe, $parameters, Lock $lock) $lines = []; foreach (file($target) as $line) { foreach (array_keys($parameters) as $key) { - if (preg_match("/^\s+$key\:/", $line)) { + if (preg_match(sprintf('/^\s+%s\:/', preg_quote($key, '/')), $line)) { continue 2; } } @@ -62,7 +62,7 @@ private function addParameters(array $parameters) continue; } foreach ($parameters as $key => $value) { - if (preg_match("/^\s+$key\:/", $line)) { + if (preg_match(sprintf('/^\s+%s\:/', preg_quote($key, '/')), $line)) { unset($parameters[$key]); } } diff --git a/tests/Configurator/ContainerConfiguratorTest.php b/tests/Configurator/ContainerConfiguratorTest.php index 9e660a1a4..8c1eaa97b 100644 --- a/tests/Configurator/ContainerConfiguratorTest.php +++ b/tests/Configurator/ContainerConfiguratorTest.php @@ -192,4 +192,47 @@ public function testConfigureWithComplexContent() EOF , file_get_contents($config)); } + + public function testConfigureWithEnvVariable() + { + $recipe = $this->getMockBuilder(Recipe::class)->disableOriginalConstructor()->getMock(); + $lock = $this->getMockBuilder(Lock::class)->disableOriginalConstructor()->getMock(); + $config = FLEX_TEST_DIR.'/config/services.yaml'; + file_put_contents( + $config, + <<getMockBuilder(Composer::class)->getMock(), + $this->getMockBuilder(IOInterface::class)->getMock(), + new Options(['config-dir' => 'config', 'root-dir' => FLEX_TEST_DIR]) + ); + $configurator->configure($recipe, ['env(APP_ENV)' => ''], $lock); + $this->assertEquals(<<unconfigure($recipe, ['env(APP_ENV)' => ''], $lock); + $this->assertEquals(<<