Skip to content

Commit

Permalink
[Components][Process] mustRun() documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
xabbuh authored and weaverryan committed Oct 1, 2014
1 parent 8c9847d commit ad6a340
Showing 1 changed file with 25 additions and 4 deletions.
29 changes: 25 additions & 4 deletions components/process.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ a command in a sub-process::
throw new \RuntimeException($process->getErrorOutput());
}

print $process->getOutput();
echo $process->getOutput();

The component takes care of the subtle differences between the different platforms
when executing the command.
Expand All @@ -50,6 +50,27 @@ the contents of the output and
:method:`Symfony\\Component\\Process\\Process::clearErrorOutput` clears
the contents of the error output.

.. versionadded:: 2.5
The ``mustRun()`` method was introduced in Symfony 2.5.

The ``mustRun()`` method is identical to ``run()``, except that it will throw
a :class:`Symfony\\Component\\Process\\Exception\\ProcessFailedException`
if the process couldn't be executed successfully (i.e. the process exited
with a non-zero code)::

use Symfony\Component\Process\Exception\ProcessFailedException;
use Symfony\Component\Process\Process;

$process = new Process('ls -lsa');

try {
$process->mustRun();

echo $process->getOutput();
} catch (ProcessFailedException $e) {
echo $e->getMessage();
}

Getting real-time Process Output
--------------------------------

Expand Down Expand Up @@ -218,17 +239,17 @@ Process Idle Timeout
.. versionadded:: 2.4
The :method:`Symfony\\Component\\Process\\Process::setIdleTimeout` method
was introduced in Symfony 2.4.

In contrast to the timeout of the previous paragraph, the idle timeout only
considers the time since the last output was produced by the process::

use Symfony\Component\Process\Process;

$process = new Process('something-with-variable-runtime');
$process->setTimeout(3600);
$process->setIdleTimeout(60);
$process->run();

In the case above, a process is considered timed out, when either the total runtime
exceeds 3600 seconds, or the process does not produce any output for 60 seconds.

Expand Down

0 comments on commit ad6a340

Please sign in to comment.