8000 [Process] Deprecate ProcessBuilder · symfony/symfony@fc7406a · GitHub
[go: up one dir, main page]

Skip to content

Commit fc7406a

Browse files
[Process] Deprecate ProcessBuilder
1 parent 25f1368 commit fc7406a

File tree

10 files changed

+32
-24
lines changed

10 files changed

+32
-24
lines changed

UPGRADE-3.4.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ Finder
1313
deprecated and will be removed in 4.0 as it used to fix a bug which existed
1414
before version 5.5.23/5.6.7.
1515

16+
Process
17+
-------
18+
19+
* The `Symfony\Component\Process\ProcessBuilder` class has been deprecated,
20+
use the `Symfony\Component\Process\Process` class directly instead.
21+
1622
Validator
1723
---------
1824

UPGRADE-4.0.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,9 @@ Ldap
411411
Process
412412
-------
413413

414+
* The `Symfony\Component\Process\ProcessBuilder` class has been removed,
415+
use the `Symfony\Component\Process\Process` class directly instead.
416+
414417
* The `ProcessUtils::escapeArgument()` method has been removed, use a command line array or give env vars to the `Process::start/run()` method instead.
415418

416419
* Environment variables are always inherited in sub-processes.

src/Symfony/Bundle/WebServerBundle/WebServer.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
use Symfony\Component\Process\PhpExecutableFinder;
1515
use Symfony\Component\Process\Process;
16-
use Symfony\Component\Process\ProcessBuilder;
1716
use Symfony\Component\Process\Exception\RuntimeException;
1817

1918
/**
@@ -151,11 +150,11 @@ private function createServerProcess(WebServerConfig $config)
151150
throw new \RuntimeException('Unable to find the PHP binary.');
152151
}
153152

154-
$builder = new ProcessBuilder(array($binary, '-S', $config->getAddress(), $config->getRouter()));
155-
$builder->setWorkingDirectory($config->getDocumentRoot());
156-
$builder->setTimeout(null);
153+
$process = new Process(array($binary, '-S', $config->getAddress(), $config->getRouter()));
154+
$process->setWorkingDirectory($config->getDocumentRoot());
155+
$process->setTimeout(null);
157156

158-
return $builder->getProcess();
157+
return $process;
159158
}
160159

161160
private function getDefaultPidFile()

src/Symfony/Bundle/WebServerBundle/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"php": ">=5.5.9",
2020
"symfony/console": "~2.8.8|~3.0.8|~3.1.2|~3.2|~4.0",
2121
"symfony/http-kernel": "~3.3|~4.0",
22-
"symfony/process": "~2.8|~3.0|~4.0"
22+
"symfony/process": "~3.3|~4.0"
2323
},
2424
"autoload": {
2525
"psr-4": { "Symfony\\Bundle\\WebServerBundle\\": "" },

src/Symfony/Component/Console/Helper/ProcessHelper.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
use Symfony\Component\Console\Output\OutputInterface;
1616
use Symfony\Component\Process\Exception\ProcessFailedException;
1717
use Symfony\Component\Process\Process;
18-
use Symfony\Component\Process\ProcessBuilder;
1918

2019
/**
2120
* The ProcessHelper class provides helpers to run external processes.
@@ -45,7 +44,7 @@ public function run(OutputInterface $output, $cmd, $error = null, callable $call
4544
$formatter = $this->getHelperSet()->get('debug_formatter');
4645

4746
if (is_array($cmd)) {
48-
$process = ProcessBuilder::create($cmd)->getProcess();
47+
$process = new Process($cmd);
4948
} elseif ($cmd instanceof Process) {
5049
$process = $cmd;
5150
} else {

src/Symfony/Component/Console/Tests/Helper/ProcessHelperTest.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
use Symfony\Component\Console\Output\StreamOutput;
1818
use Symfony\Component\Console\Helper\ProcessHelper;
1919
use Symfony\Component\Process\Process;
20-
use Symfony\Component\Process\ProcessBuilder;
2120

2221
class ProcessHelperTest extends TestCase
2322
{
@@ -85,8 +84,8 @@ public function provideCommandsAndOutput()
8584
EOT;
8685

8786
$errorMessage = 'An error occurred';
88-
$args = new ProcessBuilder(array('php', '-r', 'echo 42;'));
89-
$args = $args->getProcess()->getCommandLine();
87+
$args = new Process(array('php', '-r', 'echo 42;'));
88+
$args = $args->getCommandLine();
9089
$successOutputProcessDebug = str_replace("'php' '-r' 'echo 42;'", $args, $successOutputProcessDebug);
9190

9291
return array(

src/Symfony/Component/Console/composer.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"symfony/event-dispatcher": "~2.8|~3.0|~4.0",
2727
"symfony/dependency-injection": "~3.3|~4.0",
2828
"symfony/filesystem": "~2.8|~3.0|~4.0",
29-
"symfony/process": "~2.8|~3.0|~4.0",
29+
"symfony/process": "~3.3|~4.0",
3030
"psr/log": "~1.0"
3131
},
3232
"suggest": {
@@ -36,7 +36,8 @@
3636
"psr/log": "For using the console logger"
3737
},
3838
"conflict": {
39-
"symfony/dependency-injection": "<3.3"
39+
"symfony/dependency-injection": "<3.3",
40+
"symfony/process": "<3.3"
4041
},
4142
"autoload": {
4243
"psr-4": { "Symfony\\Component\\Console\\": "" },

src/Symfony/Component/Process/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
CHANGELOG
22
=========
33

4+
3.4.0
5+
-----
6+
7+
* deprecated the ProcessBuilder class
8+
49
3.3.0
510
-----
611

src/Symfony/Component/Process/ProcessBuilder.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,17 @@
1111

1212
namespace Symfony\Component\Process;
1313

14+
@trigger_error(sprintf('The %s class is deprecated since version 3.4 and will be removed in 4.0. Use the Process class instead.', __METHOD__), ProcessBuilder::class);
15+
1416
use Symfony\Component\Process\Exception\InvalidArgumentException;
1517
use Symfony\Component\Process\Exception\LogicException;
1618

1719
/**
1820
* Process builder.
1921
*
2022
* @author Kris Wallsmith <kris@symfony.com>
23+
*
24+
* @deprecated since version 3.4, to be removed in 4.0. Use the Process class instead.
2125
*/
2226
class ProcessBuilder
2327
{
@@ -120,13 +124,9 @@ public function setWorkingDirectory($cwd)
120124
* @param bool $inheritEnv
121125
*
122126
* @return $this
123-
*
124-
* @deprecated since version 3.3, to be removed in 4.0.
125127
*/
126128
public function inheritEnvironmentVariables($inheritEnv = true)
127129
{
128-
@trigger_error(sprintf('The %s() method is deprecated since version 3.3 and will be removed in 4.0.', __METHOD__), E_USER_DEPRECATED);
129-
130130
$this->inheritEnv = $inheritEnv;
131131

132132
return $this;
@@ -221,13 +221,9 @@ public function setTimeout($timeout)
221221
* @param string $value The option value
222222
*
223223
* @return $this
224-
*
225-
* @deprecated since version 3.3, to be removed in 4.0.
226224
*/
227225
public function setOption($name, $value)
228226
{
229-
@trigger_error(sprintf('The %s() method is deprecated since version 3.3 and will be removed in 4.0.', __METHOD__), E_USER_DEPRECATED);
230-
231227
$this->options[$name] = $value;
232228

233229
return $this;

src/Symfony/Component/Process/Tests/ProcessBuilderTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
use PHPUnit\Framework\TestCase;
1515
use Symfony\Component\Process\ProcessBuilder;
1616

17+
/**
18+
* @group legacy
19+
*/
1720
class ProcessBuilderTest extends TestCase
1821
{
19-
/**
20-
* @group legacy
21-
*/
2222
public function testInheritEnvironmentVars()
2323
{
2424
$proc = ProcessBuilder::create()

0 commit comments

Comments
 (0)
0