Skip to content
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

[Components][Process] mustRun() documentation #4201

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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