From b46ebf79b1960367ef7cfcbf5aeb9cda571cd2fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Tue, 4 Jun 2013 13:54:31 +0200 Subject: [PATCH] [Process] Added ProcessBuilder::addEnvironmentVariables --- .../Component/Process/ProcessBuilder.php | 7 +++++++ .../Process/Tests/ProcessBuilderTest.php | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/Symfony/Component/Process/ProcessBuilder.php b/src/Symfony/Component/Process/ProcessBuilder.php index ddd064a2b8..d0151abb6e 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 1f95396891..e1875a9249 100644 --- a/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php +++ b/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php @@ -53,6 +53,23 @@ class ProcessBuilderTest extends \PHPUnit_Framework_TestCase $this->assertNull($proc->getEnv()); } + 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 testNotReplaceExplicitlySetVars() { $snapshot = $_ENV;