From 63b00598fe108fe7928c6f4db48e9909d13ba68f Mon Sep 17 00:00:00 2001 From: Alexander Date: Sun, 28 Oct 2012 16:19:50 +0100 Subject: [PATCH] [Process] Add ability to reset arguments on ProcessBuilder --- src/Symfony/Component/Process/CHANGELOG.md | 1 + src/Symfony/Component/Process/ProcessBuilder.php | 12 ++++++++++++ .../Component/Process/Tests/ProcessBuilderTest.php | 10 ++++++++++ 3 files changed, 23 insertions(+) diff --git a/src/Symfony/Component/Process/CHANGELOG.md b/src/Symfony/Component/Process/CHANGELOG.md index f0752ec8e8..7fa5b72d50 100644 --- a/src/Symfony/Component/Process/CHANGELOG.md +++ b/src/Symfony/Component/Process/CHANGELOG.md @@ -4,6 +4,7 @@ CHANGELOG 2.2.0 ----- + * added ProcessBuilder::setArguments() to reset the arguments on a builder * added a way to retrieve the standard and error output incrementally * added Process:restart() diff --git a/src/Symfony/Component/Process/ProcessBuilder.php b/src/Symfony/Component/Process/ProcessBuilder.php index 2a88ea00d4..ce3a041f16 100644 --- a/src/Symfony/Component/Process/ProcessBuilder.php +++ b/src/Symfony/Component/Process/ProcessBuilder.php @@ -56,6 +56,18 @@ class ProcessBuilder return $this; } + /** + * @param array $arguments + * + * @return ProcessBuilder + */ + public function setArguments(array $arguments) + { + $this->arguments = $arguments; + + return $this; + } + public function setWorkingDirectory($cwd) { $this->cwd = $cwd; diff --git a/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php b/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php index 4f6157e46e..469208c99f 100644 --- a/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php +++ b/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php @@ -105,4 +105,14 @@ class ProcessBuilderTest extends \PHPUnit_Framework_TestCase $this->assertNull($p->getValue($pb)); } + + public function testShouldSetArguments() + { + $pb = new ProcessBuilder(array('initial')); + $pb->setArguments(array('second')); + + $proc = $pb->getProcess(); + + $this->assertContains("second", $proc->getCommandLine()); + } }