diff --git a/src/Symfony/Component/DependencyInjection/CHANGELOG.md b/src/Symfony/Component/DependencyInjection/CHANGELOG.md index 470331d9b7..7afa4a21b8 100644 --- a/src/Symfony/Component/DependencyInjection/CHANGELOG.md +++ b/src/Symfony/Component/DependencyInjection/CHANGELOG.md @@ -4,6 +4,7 @@ CHANGELOG 4.3.0 ----- + * added `%env(trim:...)%` processor to trim a string value * added `%env(default:...)%` processor to fallback to a default value 4.2.0 diff --git a/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php b/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php index abf2d0c192..fb9894912b 100644 --- a/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php +++ b/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php @@ -45,6 +45,7 @@ class EnvVarProcessor implements EnvVarProcessorInterface 'resolve' => 'string', 'default' => 'bool|int|float|string|array', 'string' => 'string', + 'trim' => 'string', ); } @@ -195,6 +196,10 @@ class EnvVarProcessor implements EnvVarProcessorInterface return str_getcsv($env); } + if ('trim' === $prefix) { + return trim($env); + } + throw new RuntimeException(sprintf('Unsupported env var prefix "%s".', $prefix)); } } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Compiler/RegisterEnvVarProcessorsPassTest.php b/src/Symfony/Component/DependencyInjection/Tests/Compiler/RegisterEnvVarProcessorsPassTest.php index 93d3c16ff9..bdc05146e4 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Compiler/RegisterEnvVarProcessorsPassTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Compiler/RegisterEnvVarProcessorsPassTest.php @@ -42,6 +42,7 @@ class RegisterEnvVarProcessorsPassTest extends TestCase 'resolve' => array('string'), 'default' => array('bool', 'int', 'float', 'string', 'array'), 'string' => array('string'), + 'trim' => array('string'), ); $this->assertSame($expected, $container->getParameterBag()->getProvidedTypes()); diff --git a/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php b/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php index b244537354..e9bb0fe47a 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/EnvVarProcessorTest.php @@ -233,6 +233,19 @@ class EnvVarProcessorTest extends TestCase $this->assertSame('hello', $result); } + public function testGetEnvTrim() + { + $processor = new EnvVarProcessor(new Container()); + + $result = $processor->getEnv('trim', 'foo', function ($name) { + $this->assertSame('foo', $name); + + return " hello\n"; + }); + + $this->assertSame('hello', $result); + } + /** * @dataProvider validJson */