-
-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feature #3930 [Console] Add Process Helper documentation (romainneutron)
This PR was merged into the master branch. Discussion ---------- [Console] Add Process Helper documentation | Q | A | ------------- | --- | Doc fix? | yes | New docs? | yes (symfony/symfony#10627) | Applies to | 2.5+ | Fixed tickets | n/a This PR replaces #3756 (merged prematurely) Commits ------- a9d6a8b [Console] Add Process Helper documentation
- Loading branch information
Showing
6 changed files
with
86 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
.. index:: | ||
single: Console Helpers; Process Helper | ||
|
||
Process Helper | ||
============== | ||
|
||
.. versionadded:: 2.6 | ||
The Process Helper was introduced in Symfony 2.6. | ||
|
||
The Process Helper shows processes as they're running and reports | ||
useful information about process status. | ||
|
||
To display process details, use the :class:`Symfony\\Component\\Console\\Helper\\ProcessHelper` | ||
and run your command with verbosity. For example, running the following code with | ||
a very verbose verbosity (e.g. -vv):: | ||
|
||
use Symfony\Component\Process\ProcessBuilder; | ||
|
||
$helper = $this->getHelper('process'); | ||
$process = ProcessBuilder::create(array('figlet', 'Symfony'))->getProcess(); | ||
|
||
$helper->run($output, $process); | ||
|
||
will result in this output: | ||
|
||
.. image:: /images/components/console/process-helper-verbose.png | ||
|
||
It will result in more detailed output with debug verbosity (e.g. ``-vvv``): | ||
|
||
.. image:: /images/components/console/process-helper-debug.png | ||
|
||
In case the process fails, debugging is easier: | ||
|
||
.. image:: /images/components/console/process-helper-error-debug.png | ||
|
||
Arguments | ||
--------- | ||
|
||
There are three ways to use the process helper: | ||
|
||
* Either using a command line string:: | ||
|
||
// ... | ||
$helper->run($output, 'figlet Symfony'); | ||
|
||
* An array of arguments:: | ||
|
||
// ... | ||
$helper->run($output, array('figlet', 'Symfony')); | ||
|
||
.. note:: | ||
|
||
When running the helper against an array of arguments, be aware that | ||
these ones will be automatically escaped. | ||
|
||
* Or a :class:`Symfony\\Component\\Process\\Process` instance:: | ||
|
||
use Symfony\Component\Process\ProcessBuilder; | ||
|
||
// ... | ||
$process = ProcessBuilder::create(array('figlet', 'Symfony'))->getProcess(); | ||
|
||
$helper->run($output, $process); | ||
|
||
Customized Display | ||
------------------ | ||
|
||
You can display a customized error message using the third argument of the | ||
:method:`Symfony\\Component\\Console\\Helper\\ProcessHelper::run` method:: | ||
|
||
$helper->run($output, $process, 'The process failed :('); | ||
|
||
A custom process callback can be passed as fourth argument, refer to the | ||
:doc:`Process Component </components/process>` for callback documentation:: | ||
|
||
use Symfony\Component\Process\Process; | ||
|
||
$helper->run($output, $process, 'The process failed :(', function ($type, $data) { | ||
if (Process::ERR === $type) { | ||
// ... do something with the stderr output | ||
} else { | ||
// ... do something with the stdout | ||
} | ||
}); |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.