Process (Component\Process)
Symfony\Component\Process\Process
class Process
Process is a thin wrapper around proc_* functions to easily start independent PHP processes.
Constants
ERR | |
OUT | |
STATUS_READY | |
STATUS_STARTED | |
STATUS_TERMINATED | |
STDIN | |
STDOUT | |
STDERR | |
TIMEOUT_PRECISION |
Properties
static array | $exitCodes | Exit codes translation table. |
Methods
__construct(string $commandline, string|null $cwd = null, array $env = null, string|null $input = null, int|float|null $timeout = 60, array $options = array()) Constructor. | ||
__destruct() | ||
__clone() | ||
int | run(callable|null $callback = null) Runs the process. | |
Process | mustRun(callable $callback = null) Runs the process. | |
start(callable $callback = null) Starts the process and returns after writing the input to STDIN. | ||
Process | restart(callable $callback = null) Restarts the process. | |
int | wait(callable $callback = null) Waits for the process to terminate. | |
int|null | getPid() Returns the Pid (process identifier), if applicable. | |
Process | signal(int $signal) Sends a POSIX signal to the process. | |
Process | disableOutput() Disables fetching output and error output from the underlying process. | |
Process | enableOutput() Enables fetching output and error output from the underlying process. | |
bool | isOutputDisabled() Returns true in case the output is disabled, false otherwise. | |
string | getOutput() Returns the current output of the process (STDOUT). | |
string | getIncrementalOutput() Returns the output incrementally. | |
Process | clearOutput() Clears the process output. | |
string | getErrorOutput() Returns the current error output of the process (STDERR). | |
string | getIncrementalErrorOutput() Returns the errorOutput incrementally. | |
Process | clearErrorOutput() Clears the process output. | |
null|int | getExitCode() Returns the exit code returned by the process. | |
null|string | getExitCodeText() Returns a string representation for the exit code returned by the process. | |
bool | isSuccessful() Checks if the process ended successfully. | |
bool | hasBeenSignaled() Returns true if the child process has been terminated by an uncaught signal. | |
int | getTermSignal() Returns the number of the signal that caused the child process to terminate its execution. | |
bool | hasBeenStopped() Returns true if the child process has been stopped by a signal. | |
int | getStopSignal() Returns the number of the signal that caused the child process to stop its execution. | |
bool | isRunning() Checks if the process is currently running. | |
bool | isStarted() Checks if the process has been started with no regard to the current state. | |
bool | isTerminated() Checks if the process is terminated. | |
string | getStatus() Gets the process status. | |
int | stop(int|float $timeout = 10, int $signal = null) Stops the process. | |
addOutput(string $line) Adds a line to the STDOUT stream. | ||
addErrorOutput(string $line) Adds a line to the STDERR stream. | ||
string | getCommandLine() Gets the command line to be executed. | |
Process | setCommandLine(string $commandline) Sets the command line to be executed. | |
float|null | getTimeout() Gets the process timeout (max. | |
float|null | getIdleTimeout() Gets the process idle timeout (max. | |
Process | setTimeout(int|float|null $timeout) Sets the process timeout (max. | |
Process | setIdleTimeout(int|float|null $timeout) Sets the process idle timeout (max. | |
Process | setTty(bool $tty) Enables or disables the TTY mode. | |
bool | isTty() Checks if the TTY mode is enabled. | |
Process | setPty(bool $bool) Sets PTY mode. | |
bool | isPty() Returns PTY state. | |
string|null | getWorkingDirectory() Gets the working directory. | |
Process | setWorkingDirectory(string $cwd) Sets the current working directory. | |
array | getEnv() Gets the environment variables. | |
Process | setEnv(array $env) Sets the environment variables. | |
null|string | getInput() Gets the Process input. | |
Process | setInput(mixed $input) Sets the input. | |
array | getOptions() Gets the options for proc_open. | |
Process | setOptions(array $options) Sets the options for proc_open. | |
bool | getEnhanceWindowsCompatibility() Gets whether or not Windows compatibility is enabled. | |
Process | setEnhanceWindowsCompatibility(bool $enhance) Sets whether or not Windows compatibility is enabled. | |
bool | getEnhanceSigchildCompatibility() Returns whether sigchild compatibility mode is activated or not. | |
Process | setEnhanceSigchildCompatibility(bool $enhance) Activates sigchild compatibility mode. | |
checkTimeout() Performs a check between the timeout definition and the time the process started. | ||
static bool | isPtySupported() Returns whether PTY is supported on the current operating system. |
Details
public __construct(string $commandline, string|null $cwd = null, array $env = null, string|null $input = null, int|float|null $timeout = 60, array $options = array())
Constructor.
public __destruct()
public __clone()
public int run(callable|null $callback = null)
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.
public Process mustRun(callable $callback = null)
Runs the process.
This is identical to run() except that an exception is thrown if the process exits with a non-zero exit code.
public start(callable $callback = null)
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. If there is no callback passed, the wait() method can be called with true as a second parameter then the callback will get all data occurred in (and since) the start call.
public Process restart(callable $callback = null)
Restarts the process.
Be warned that the process is cloned before being started.
public int wait(callable $callback = null)
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.
public int|null getPid()
Returns the Pid (process identifier), if applicable.
public Process signal(int $signal)
Sends a POSIX signal to the process.
public Process disableOutput()
Disables fetching output and error output from the underlying process.
public Process enableOutput()
Enables fetching output and error output from the underlying process.
public bool isOutputDisabled()
Returns true in case the output is disabled, false otherwise.
public string getOutput()
Returns the current output of the process (STDOUT).
public string getIncrementalOutput()
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.
public Process clearOutput()
Clears the process output.
public string getErrorOutput()
Returns the current error output of the process (STDERR).
public string getIncrementalErrorOutput()
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.
public Process clearErrorOutput()
Clears the process output.
public null|int getExitCode()
Returns the exit code returned by the process.
public null|string getExitCodeText()
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.
public bool isSuccessful()
Checks if the process ended successfully.
public bool hasBeenSignaled()
Returns true if the child process has been terminated by an uncaught signal.
It always returns false on Windows.
public int getTermSignal()
Returns the number of the signal that caused the child process to terminate its execution.
It is only meaningful if hasBeenSignaled() returns true.
public bool hasBeenStopped()
Returns true if the child process has been stopped by a signal.
It always returns false on Windows.
public int getStopSignal()
Returns the number of the signal that caused the child process to stop its execution.
It is only meaningful if hasBeenStopped() returns true.
public bool isRunning()
Checks if the process is currently running.
public bool isStarted()
Checks if the process has been started with no regard to the current state.
public bool isTerminated()
Checks if the process is terminated.
public string getStatus()
Gets the process status.
The status is one of: ready, started, terminated.
public int stop(int|float $timeout = 10, int $signal = null)
Stops the process.
public addOutput(string $line)
Adds a line to the STDOUT stream.
public addErrorOutput(string $line)
Adds a line to the STDERR stream.
public string getCommandLine()
Gets the command line to be executed.
public Process setCommandLine(string $commandline)
Sets the command line to be executed.
public float|null getTimeout()
Gets the process timeout (max.
runtime).
public float|null getIdleTimeout()
Gets the process idle timeout (max.
time since last output).
public Process setTimeout(int|float|null $timeout)
Sets the process timeout (max.
runtime).
To disable the timeout, set this value to null.
public Process setIdleTimeout(int|float|null $timeout)
Sets the process idle timeout (max.
time since last output).
To disable the timeout, set this value to null.
public Process setTty(bool $tty)
Enables or disables the TTY mode.
public bool isTty()
Checks if the TTY mode is enabled.
public Process setPty(bool $bool)
Sets PTY mode.
public bool isPty()
Returns PTY state.
public string|null getWorkingDirectory()
Gets the working directory.
public Process setWorkingDirectory(string $cwd)
Sets the current working directory.
public array getEnv()
Gets the environment variables.
public Process setEnv(array $env)
Sets the environment variables.
An environment variable value should be a string. If it is an array, the variable is ignored.
That happens in PHP when 'argv' is registered into the $_ENV array for instance.
public null|string getInput()
Gets the Process input.
public Process setInput(mixed $input)
Sets the input.
This content will be passed to the underlying process standard input.
public array getOptions()
Gets the options for proc_open.
public Process setOptions(array $options)
Sets the options for proc_open.
public bool getEnhanceWindowsCompatibility()
Gets whether or not Windows compatibility is enabled.
This is true by default.
public Process setEnhanceWindowsCompatibility(bool $enhance)
Sets whether or not Windows compatibility is enabled.
public bool getEnhanceSigchildCompatibility()
Returns whether sigchild compatibility mode is activated or not.
public Process setEnhanceSigchildCompatibility(bool $enhance)
Activates sigchild compatibility mode.
Sigchild compatibility mode is required to get the exit code and determine the success of a process when PHP has been compiled with the --enable-sigchild option
public checkTimeout()
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
static public bool isPtySupported()
Returns whether PTY is supported on the current operating system.
© 2004–2016 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.0/Symfony/Component/Process/Process.html