-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WCM][Console] Add Process Helper documentation #3756
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,6 +9,7 @@ The Console Helpers | |
|
||
dialoghelper | ||
formatterhelper | ||
processhelper | ||
progressbar | ||
progresshelper | ||
table | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
.. index:: | ||
single: Console Helpers; Process Helper | ||
|
||
Process Helper | ||
============== | ||
|
||
.. versionadded:: 2.5 | ||
The Process Helper was introduced in Symfony 2.5. | ||
|
||
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->getHelperSet()->get('process'); | ||
$process = ProcessBuilder::create(array('figlet', 'Symfony'))->getProcess(); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I like your example, btw :) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ^^ asciiart ftw ! |
||
|
||
$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 | ||
|
||
There are three ways to use the process helper: using a command line string, an array | ||
of arguments that would be escaped or a :class:`Symfony\\Component\\Process\\Process` | ||
object. | ||
|
||
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 :('); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. maybe remove the sad face? it kind of misleads with the parenthesis There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Syntax highlighting on the website would solve readability |
||
|
||
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 | ||
} | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing use statement