diff --git a/src/Symfony/Component/Process/ProcessBuilder.php b/src/Symfony/Component/Process/ProcessBuilder.php index 76158d333b..fa52bafc49 100644 --- a/src/Symfony/Component/Process/ProcessBuilder.php +++ b/src/Symfony/Component/Process/ProcessBuilder.php @@ -108,6 +108,13 @@ class ProcessBuilder return $this; } + public function addEnvironmentVariables(array $variables) + { + $this->env = array_replace($this->env, $variables); + + return $this; + } + public function setInput($stdin) { $this->stdin = $stdin; diff --git a/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php b/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php index f3ff644bde..7071cf2c16 100644 --- a/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php +++ b/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php @@ -30,6 +30,23 @@ class ProcessBuilderTest extends \PHPUnit_Framework_TestCase $this->assertEquals('foo', $env['MY_VAR_1']); } + public function testAddEnvironmentVariables() + { + $pb = new ProcessBuilder(); + $env = array( + 'foo' => 'bar', + 'foo2' => 'bar2', + ); + $proc = $pb + ->add('command') + ->setEnv('foo', 'bar2') + ->addEnvironmentVariables($env) + ->getProcess() + ; + + $this->assertSame($env, $proc->getEnv()); + } + public function testProcessShouldInheritAndOverrideEnvironmentVars() { $_ENV['MY_VAR_1'] = 'foo';