diff --git a/UPGRADE-3.4.md b/UPGRADE-3.4.md index 6858520efe..e1c4af06c6 100644 --- a/UPGRADE-3.4.md +++ b/UPGRADE-3.4.md @@ -26,6 +26,12 @@ FrameworkBundle * The `KernelTestCase::getPhpUnitXmlDir()` and `KernelTestCase::getPhpUnitCliConfigArgument()` methods are deprecated since 3.4 and will be removed in 4.0. +Process +------- + + * The `Symfony\Component\Process\ProcessBuilder` class has been deprecated, + use the `Symfony\Component\Process\Process` class directly instead. + Validator --------- diff --git a/UPGRADE-4.0.md b/UPGRADE-4.0.md index 27cbc04fe0..fce693437f 100644 --- a/UPGRADE-4.0.md +++ b/UPGRADE-4.0.md @@ -420,6 +420,9 @@ Ldap Process ------- + * The `Symfony\Component\Process\ProcessBuilder` class has been removed, + use the `Symfony\Component\Process\Process` class directly instead. + * The `ProcessUtils::escapeArgument()` method has been removed, use a command line array or give env vars to the `Process::start/run()` method instead. * Environment variables are always inherited in sub-processes. diff --git a/src/Symfony/Bundle/WebServerBundle/WebServer.php b/src/Symfony/Bundle/WebServerBundle/WebServer.php index b65cec1cb7..8edbe2bf56 100644 --- a/src/Symfony/Bundle/WebServerBundle/WebServer.php +++ b/src/Symfony/Bundle/WebServerBundle/WebServer.php @@ -13,7 +13,6 @@ namespace Symfony\Bundle\WebServerBundle; use Symfony\Component\Process\PhpExecutableFinder; use Symfony\Component\Process\Process; -use Symfony\Component\Process\ProcessBuilder; use Symfony\Component\Process\Exception\RuntimeException; /** @@ -151,11 +150,11 @@ class WebServer throw new \RuntimeException('Unable to find the PHP binary.'); } - $builder = new ProcessBuilder(array($binary, '-S', $config->getAddress(), $config->getRouter())); - $builder->setWorkingDirectory($config->getDocumentRoot()); - $builder->setTimeout(null); + $process = new Process(array($binary, '-S', $config->getAddress(), $config->getRouter())); + $process->setWorkingDirectory($config->getDocumentRoot()); + $process->setTimeout(null); - return $builder->getProcess(); + return $process; } private function getDefaultPidFile() diff --git a/src/Symfony/Bundle/WebServerBundle/composer.json b/src/Symfony/Bundle/WebServerBundle/composer.json index 306b0deffe..e1870b70d0 100644 --- a/src/Symfony/Bundle/WebServerBundle/composer.json +++ b/src/Symfony/Bundle/WebServerBundle/composer.json @@ -19,7 +19,7 @@ "php": ">=5.5.9", "symfony/console": "~2.8.8|~3.0.8|~3.1.2|~3.2|~4.0", "symfony/http-kernel": "~3.3|~4.0", - "symfony/process": "~2.8|~3.0|~4.0" + "symfony/process": "~3.3|~4.0" }, "autoload": { "psr-4": { "Symfony\\Bundle\\WebServerBundle\\": "" }, diff --git a/src/Symfony/Component/Console/Helper/ProcessHelper.php b/src/Symfony/Component/Console/Helper/ProcessHelper.php index 2c46a2c39d..5010607511 100644 --- a/src/Symfony/Component/Console/Helper/ProcessHelper.php +++ b/src/Symfony/Component/Console/Helper/ProcessHelper.php @@ -15,7 +15,6 @@ use Symfony\Component\Console\Output\ConsoleOutputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Process\Exception\ProcessFailedException; use Symfony\Component\Process\Process; -use Symfony\Component\Process\ProcessBuilder; /** * The ProcessHelper class provides helpers to run external processes. @@ -45,7 +44,7 @@ class ProcessHelper extends Helper $formatter = $this->getHelperSet()->get('debug_formatter'); if (is_array($cmd)) { - $process = ProcessBuilder::create($cmd)->getProcess(); + $process = new Process($cmd); } elseif ($cmd instanceof Process) { $process = $cmd; } else { diff --git a/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php b/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php index 8069bcccc9..eb619539ee 100644 --- a/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php +++ b/src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php @@ -17,7 +17,6 @@ use Symfony\Component\Console\Helper\HelperSet; use Symfony\Component\Console\Output\StreamOutput; use Symfony\Component\Console\Helper\ProcessHelper; use Symfony\Component\Process\Process; -use Symfony\Component\Process\ProcessBuilder; class ProcessHelperTest extends TestCase { @@ -85,8 +84,8 @@ EOT; EOT; $errorMessage = 'An error occurred'; - $args = new ProcessBuilder(array('php', '-r', 'echo 42;')); - $args = $args->getProcess()->getCommandLine(); + $args = new Process(array('php', '-r', 'echo 42;')); + $args = $args->getCommandLine(); $successOutputProcessDebug = str_replace("'php' '-r' 'echo 42;'", $args, $successOutputProcessDebug); return array( diff --git a/src/Symfony/Component/Console/composer.json b/src/Symfony/Component/Console/composer.json index 9af71348cc..5f7fe6ec1a 100644 --- a/src/Symfony/Component/Console/composer.json +++ b/src/Symfony/Component/Console/composer.json @@ -26,7 +26,7 @@ "symfony/event-dispatcher": "~2.8|~3.0|~4.0", "symfony/dependency-injection": "~3.3|~4.0", "symfony/filesystem": "~2.8|~3.0|~4.0", - "symfony/process": "~2.8|~3.0|~4.0", + "symfony/process": "~3.3|~4.0", "psr/log": "~1.0" }, "suggest": { @@ -36,7 +36,8 @@ "psr/log": "For using the console logger" }, "conflict": { - "symfony/dependency-injection": "<3.3" + "symfony/dependency-injection": "<3.3", + "symfony/process": "<3.3" }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" }, diff --git a/src/Symfony/Component/Process/CHANGELOG.md b/src/Symfony/Component/Process/CHANGELOG.md index bb719be711..7193c498d4 100644 --- a/src/Symfony/Component/Process/CHANGELOG.md +++ b/src/Symfony/Component/Process/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +3.4.0 +----- + + * deprecated the ProcessBuilder class + 3.3.0 ----- diff --git a/src/Symfony/Component/Process/ProcessBuilder.php b/src/Symfony/Component/Process/ProcessBuilder.php index 2a5bb2bc3f..5a54689875 100644 --- a/src/Symfony/Component/Process/ProcessBuilder.php +++ b/src/Symfony/Component/Process/ProcessBuilder.php @@ -11,6 +11,8 @@ namespace Symfony\Component\Process; +@trigger_error(sprintf('The %s class is deprecated since version 3.4 and will be removed in 4.0. Use the Process class instead.', ProcessBuilder::class), E_USER_DEPRECATED); + use Symfony\Component\Process\Exception\InvalidArgumentException; use Symfony\Component\Process\Exception\LogicException; @@ -18,6 +20,8 @@ use Symfony\Component\Process\Exception\LogicException; * Process builder. * * @author Kris Wallsmith + * + * @deprecated since version 3.4, to be removed in 4.0. Use the Process class instead. */ class ProcessBuilder { @@ -120,13 +124,9 @@ class ProcessBuilder * @param bool $inheritEnv * * @return $this - * - * @deprecated since version 3.3, to be removed in 4.0. */ public function inheritEnvironmentVariables($inheritEnv = true) { - @trigger_error(sprintf('The %s() method is deprecated since version 3.3 and will be removed in 4.0.', __METHOD__), E_USER_DEPRECATED); - $this->inheritEnv = $inheritEnv; return $this; @@ -221,13 +221,9 @@ class ProcessBuilder * @param string $value The option value * * @return $this - * - * @deprecated since version 3.3, to be removed in 4.0. */ public function setOption($name, $value) { - @trigger_error(sprintf('The %s() method is deprecated since version 3.3 and will be removed in 4.0.', __METHOD__), E_USER_DEPRECATED); - $this->options[$name] = $value; return $this; diff --git a/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php b/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php index 34bb373272..c1a67afa18 100644 --- a/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php +++ b/src/Symfony/Component/Process/Tests/ProcessBuilderTest.php @@ -14,11 +14,11 @@ namespace Symfony\Component\Process\Tests; use PHPUnit\Framework\TestCase; use Symfony\Component\Process\ProcessBuilder; +/** + * @group legacy + */ class ProcessBuilderTest extends TestCase { - /** - * @group legacy - */ public function testInheritEnvironmentVars() { $proc = ProcessBuilder::create()