class PhpProcess extends Process
PhpProcess runs a PHP script in an independent process.
$p = new PhpProcess(''); $p->run(); print $p->getOutput()."\n";
ERR | |
OUT | |
STATUS_READY | |
STATUS_STARTED | |
STATUS_TERMINATED | |
STDIN | |
STDOUT | |
STDERR | |
TIMEOUT_PRECISION | |
ITER_NON_BLOCKING | |
ITER_KEEP_OUTPUT | |
ITER_SKIP_OUT | |
ITER_SKIP_ERR |
static | $exitCodes | Exit codes translation table. | from Process |
__construct(string $script, string $cwd = null, array $env = null, float|null $timeout = 60) | ||
__destruct() | from Process | |
__clone() | from Process | |
int | run(callable $callback = null, array $env = array()) Runs the process. | from Process |
Process | mustRun(callable $callback = null, array $env = array()) Runs the process. | from Process |
start(callable $callback = null, array $env = array()) Starts the process and returns after writing the input to STDIN. | ||
$this | restart(callable $callback = null, array $env = array()) Restarts the process. | from Process |
int | wait(callable $callback = null) Waits for the process to terminate. | from Process |
int|null | getPid() Returns the Pid (process identifier), if applicable. | from Process |
$this | signal(int $signal) Sends a POSIX signal to the process. | from Process |
$this | disableOutput() Disables fetching output and error output from the underlying process. | from Process |
$this | enableOutput() Enables fetching output and error output from the underlying process. | from Process |
bool | isOutputDisabled() Returns true in case the output is disabled, false otherwise. | from Process |
string | getOutput() Returns the current output of the process (STDOUT). | from Process |
string | getIncrementalOutput() Returns the output incrementally. | from Process |
Generator | getIterator(int $flags = 0) Returns an iterator to the output of the process, with the output type as keys (Process::OUT/ERR). | from Process |
$this | clearOutput() Clears the process output. | from Process |
string | getErrorOutput() Returns the current error output of the process (STDERR). | from Process |
string | getIncrementalErrorOutput() Returns the errorOutput incrementally. | from Process |
$this | clearErrorOutput() Clears the process output. | from Process |
int|null | getExitCode() Returns the exit code returned by the process. | from Process |
string|null | getExitCodeText() Returns a string representation for the exit code returned by the process. | from Process |
bool | isSuccessful() Checks if the process ended successfully. | from Process |
bool | hasBeenSignaled() Returns true if the child process has been terminated by an uncaught signal. | from Process |
int | getTermSignal() Returns the number of the signal that caused the child process to terminate its execution. | from Process |
bool | hasBeenStopped() Returns true if the child process has been stopped by a signal. | from Process |
int | getStopSignal() Returns the number of the signal that caused the child process to stop its execution. | from Process |
bool | isRunning() Checks if the process is currently running. | from Process |
bool | isStarted() Checks if the process has been started with no regard to the current state. | from Process |
bool | isTerminated() Checks if the process is terminated. | from Process |
string | getStatus() Gets the process status. | from Process |
int | stop(int|float $timeout = 10, int $signal = null) Stops the process. | from Process |
addOutput(string $line) Adds a line to the STDOUT stream. | from Process | |
addErrorOutput(string $line) Adds a line to the STDERR stream. | from Process | |
string | getCommandLine() Gets the command line to be executed. | from Process |
Process | setCommandLine(string|array $commandline) Sets the command line to be executed. | from Process |
float|null | getTimeout() Gets the process timeout (max. runtime). | from Process |
float|null | getIdleTimeout() Gets the process idle timeout (max. time since last output). | from Process |
Process | setTimeout(int|float|null $timeout) Sets the process timeout (max. runtime). | from Process |
Process | setIdleTimeout(int|float|null $timeout) Sets the process idle timeout (max. time since last output). | from Process |
Process | setTty(bool $tty) Enables or disables the TTY mode. | from Process |
bool | isTty() Checks if the TTY mode is enabled. | from Process |
Process | setPty(bool $bool) Sets PTY mode. | from Process |
bool | isPty() Returns PTY state. | from Process |
string|null | getWorkingDirectory() Gets the working directory. | from Process |
Process | setWorkingDirectory(string $cwd) Sets the current working directory. | from Process |
array | getEnv() Gets the environment variables. | from Process |
Process | setEnv(array $env) Sets the environment variables. | from Process |
resource|string|Iterator|null | getInput() Gets the Process input. | from Process |
Process | setInput(string|int|float|bool|resource|Traversable|null $input) Sets the input. | from Process |
Process | inheritEnvironmentVariables(bool $inheritEnv = true) Sets whether environment variables will be inherited or not. | from Process |
checkTimeout() Performs a check between the timeout definition and the time the process started. | from Process | |
static bool | isTtySupported() Returns whether TTY is supported on the current operating system. | from Process |
static bool | isPtySupported() Returns whether PTY is supported on the current operating system. | from Process |
Closure | buildCallback(callable $callback = null) Builds up the callback used by wait(). | from Process |
updateStatus(bool $blocking) Updates the status of the process, reads pipes. | from Process | |
bool | isSigchildEnabled() Returns whether PHP has been compiled with the '--enable-sigchild' option or not. | from Process |
setPhpBinary($php) Sets the path to the PHP binary to use. |
string | $script | The PHP script to run (as a string) |
string | $cwd | The working directory or null to use the working dir of the current PHP process |
array | $env | The environment variables or null to use the same environment as the current PHP process |
float|null | $timeout | The timeout in seconds or null to disable |
Runs the process.
The callback receives the type of output (out or err) and some bytes from the output in real-time. It allows to have feedback from the independent process during execution.
The STDOUT and STDERR are also available after the process is finished via the getOutput() and getErrorOutput() methods.
callable | $callback | A PHP callback to run whenever there is some output available on STDOUT or STDERR |
array | $env | An array of additional env vars to set when running the process |
int | The exit status code |
RuntimeException | When process can't be launched |
RuntimeException | When process stopped after receiving signal |
LogicException | In case a callback is provided and output has been disabled |
Runs the process.
This is identical to run() except that an exception is thrown if the process exits with a non-zero exit code.
callable | $callback | |
array | $env | An array of additional env vars to set when running the process |
Process |
ProcessFailedException | if the process didn't terminate successfully |
Starts the process and returns after writing the input to STDIN.
This method blocks until all STDIN data is sent to the process then it returns while the process runs in the background.
The termination of the process can be awaited with wait().
The callback receives the type of output (out or err) and some bytes from the output in real-time while writing the standard input to the process. It allows to have feedback from the independent process during execution.
callable | $callback | A PHP callback to run whenever there is some output available on STDOUT or STDERR |
array | $env | An array of additional env vars to set when running the process |
RuntimeException | When process can't be launched |
RuntimeException | When process is already running |
LogicException | In case a callback is provided and output has been disabled |
Restarts the process.
Be warned that the process is cloned before being started.
callable | $callback | A PHP callback to run whenever there is some output available on STDOUT or STDERR |
array | $env | An array of additional env vars to set when running the process |
$this |
RuntimeException | When process can't be launched |
RuntimeException | When process is already running |
start() |
Waits for the process to terminate.
The callback receives the type of output (out or err) and some bytes from the output in real-time while writing the standard input to the process. It allows to have feedback from the independent process during execution.
callable | $callback | A valid PHP callback |
int | The exitcode of the process |
RuntimeException | When process timed out |
RuntimeException | When process stopped after receiving signal |
LogicException | When process is not yet started |
Returns the Pid (process identifier), if applicable.
int|null | The process id if running, null otherwise |
Sends a POSIX signal to the process.
int | $signal | A valid POSIX signal (see http://www.php.net/manual/en/pcntl.constants.php) |
$this |
LogicException | In case the process is not running |
RuntimeException | In case --enable-sigchild is activated and the process can't be killed |
RuntimeException | In case of failure |
Disables fetching output and error output from the underlying process.
$this |
RuntimeException | In case the process is already running |
LogicException | if an idle timeout is set |
Enables fetching output and error output from the underlying process.
$this |
RuntimeException | In case the process is already running |
Returns true in case the output is disabled, false otherwise.
bool |
Returns the current output of the process (STDOUT).
string | The process output |
LogicException | in case the output has been disabled |
LogicException | In case the process is not started |
Returns the output incrementally.
In comparison with the getOutput method which always return the whole output, this one returns the new output since the last call.
string | The process output since the last call |
LogicException | in case the output has been disabled |
LogicException | In case the process is not started |
Returns an iterator to the output of the process, with the output type as keys (Process::OUT/ERR).
int | $flags | A bit field of Process::ITER_* flags |
Generator |
LogicException | in case the output has been disabled |
LogicException | In case the process is not started |
Clears the process output.
$this |
Returns the current error output of the process (STDERR).
string | The process error output |
LogicException | in case the output has been disabled |
LogicException | In case the process is not started |
Returns the errorOutput incrementally.
In comparison with the getErrorOutput method which always return the whole error output, this one returns the new error output since the last call.
string | The process error output since the last call |
LogicException | in case the output has been disabled |
LogicException | In case the process is not started |
Clears the process output.
$this |
Returns the exit code returned by the process.
int|null | The exit status code, null if the Process is not terminated |
Returns a string representation for the exit code returned by the process.
This method relies on the Unix exit code status standardization and might not be relevant for other operating systems.
string|null | A string representation for the exit status code, null if the Process is not terminated |
http://tldp.org/LDP/abs/html/exitcodes.html | |
http://en.wikipedia.org/wiki/Unix_signal |
Checks if the process ended successfully.
bool | true if the process ended successfully, false otherwise |
Returns true if the child process has been terminated by an uncaught signal.
It always returns false on Windows.
bool |
LogicException | In case the process is not terminated |
Returns the number of the signal that caused the child process to terminate its execution.
It is only meaningful if hasBeenSignaled() returns true.
int |
RuntimeException | In case --enable-sigchild is activated |
LogicException | In case the process is not terminated |
Returns true if the child process has been stopped by a signal.
It always returns false on Windows.
bool |
LogicException | In case the process is not terminated |
Returns the number of the signal that caused the child process to stop its execution.
It is only meaningful if hasBeenStopped() returns true.
int |
LogicException | In case the process is not terminated |
Checks if the process is currently running.
bool | true if the process is currently running, false otherwise |
Checks if the process has been started with no regard to the current state.
bool | true if status is ready, false otherwise |
Checks if the process is terminated.
bool | true if process is terminated, false otherwise |
Gets the process status.
The status is one of: ready, started, terminated.
string | The current process status |
Stops the process.
int|float | $timeout | The timeout in seconds |
int | $signal | A POSIX signal to send in case the process has not stop at timeout, default is SIGKILL (9) |
int | The exit-code of the process |
Adds a line to the STDOUT stream.
string | $line |
Adds a line to the STDERR stream.
string | $line |
Gets the command line to be executed.
string | The command to execute |
Sets the command line to be executed.
string|array | $commandline | The command to execute |
Process | The current Process instance |
Gets the process timeout (max. runtime).
float|null | The timeout in seconds or null if it's disabled |
Gets the process idle timeout (max. time since last output).
float|null | The timeout in seconds or null if it's disabled |
Sets the process timeout (max. runtime).
To disable the timeout, set this value to null.
int|float|null | $timeout | The timeout in seconds |
Process | The current Process instance |
InvalidArgumentException | if the timeout is negative |
Sets the process idle timeout (max. time since last output).
To disable the timeout, set this value to null.
int|float|null | $timeout | The timeout in seconds |
Process | The current Process instance |
LogicException | if the output is disabled |
InvalidArgumentException | if the timeout is negative |
Enables or disables the TTY mode.
bool | $tty | True to enabled and false to disable |
Process | The current Process instance |
RuntimeException | In case the TTY mode is not supported |
Checks if the TTY mode is enabled.
bool | true if the TTY mode is enabled, false otherwise |
Sets PTY mode.
bool | $bool |
Process |
Returns PTY state.
bool |
Gets the working directory.
string|null | The current working directory or null on failure |
Sets the current working directory.
string | $cwd | The new working directory |
Process | The current Process instance |
Gets the environment variables.
array | The current environment variables |
Sets the environment variables.
Each environment variable value should be a string. If it is an array, the variable is ignored. If it is false or null, it will be removed when env vars are otherwise inherited.
That happens in PHP when 'argv' is registered into the $_ENV array for instance.
array | $env | The new environment variables |
Process | The current Process instance |
Gets the Process input.
resource|string|Iterator|null | The Process input |
Sets the input.
This content will be passed to the underlying process standard input.
string|int|float|bool|resource|Traversable|null | $input | The content |
Process | The current Process instance |
LogicException | In case the process is running |
Sets whether environment variables will be inherited or not.
bool | $inheritEnv |
Process | The current Process instance |
Performs a check between the timeout definition and the time the process started.
In case you run a background process (with the start method), you should trigger this method regularly to ensure the process timeout
ProcessTimedOutException | In case the timeout was reached |
Returns whether TTY is supported on the current operating system.
bool |
Returns whether PTY is supported on the current operating system.
bool |
Builds up the callback used by wait().
The callbacks adds all occurred output to the specific buffer and calls the user callback (if present) with the received output.
callable | $callback | The user defined PHP callback |
Closure | A PHP closure |
Updates the status of the process, reads pipes.
bool | $blocking | Whether to use a blocking read call |
Returns whether PHP has been compiled with the '--enable-sigchild' option or not.
bool |
Sets the path to the PHP binary to use.
$php |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Process/PhpProcess.html