diff --git a/components/console/helpers/index.rst b/components/console/helpers/index.rst index d632eeeb66a..909671fb08c 100644 --- a/components/console/helpers/index.rst +++ b/components/console/helpers/index.rst @@ -9,6 +9,7 @@ The Console Helpers dialoghelper formatterhelper + processhelper progressbar progresshelper questionhelper diff --git a/components/console/helpers/map.rst.inc b/components/console/helpers/map.rst.inc index b9a1114cfc2..15e6e9f8da9 100644 --- a/components/console/helpers/map.rst.inc +++ b/components/console/helpers/map.rst.inc @@ -1,5 +1,6 @@ * :doc:`/components/console/helpers/dialoghelper` * :doc:`/components/console/helpers/formatterhelper` +* :doc:`/components/console/helpers/processhelper` * :doc:`/components/console/helpers/progressbar` * :doc:`/components/console/helpers/progresshelper` * :doc:`/components/console/helpers/questionhelper` diff --git a/components/console/helpers/processhelper.rst b/components/console/helpers/processhelper.rst new file mode 100644 index 00000000000..414724c7f87 --- /dev/null +++ b/components/console/helpers/processhelper.rst @@ -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 ` 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 + } + }); diff --git a/images/components/console/process-helper-debug.png b/images/components/console/process-helper-debug.png new file mode 100644 index 00000000000..282e1336389 Binary files /dev/null and b/images/components/console/process-helper-debug.png differ diff --git a/images/components/console/process-helper-error-debug.png b/images/components/console/process-helper-error-debug.png new file mode 100644 index 00000000000..8d1145478f2 Binary files /dev/null and b/images/components/console/process-helper-error-debug.png differ diff --git a/images/components/console/process-helper-verbose.png b/images/components/console/process-helper-verbose.png new file mode 100644 index 00000000000..c4c912e1433 Binary files /dev/null and b/images/components/console/process-helper-verbose.png differ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy