class ProcessExecutor implements ConfigAwareInterface, LoggerAwareInterface, OutputAwareInterface, VerbosityThresholdInterface (View source)

Traits

Class ExecTrait

Task input/output methods. TaskIO is 'used' in BaseTask, so any task that extends this class has access to all of the methods here.

Task input/output methods. TaskIO is 'used' in BaseTask, so any task that extends this class has access to all of the methods here.

LoggerAwareTrait

Properties

protected bool $background from  ExecTrait
protected null|int $timeout from  ExecTrait
protected null|int $idleTimeout from  ExecTrait
protected null|array $env from  ExecTrait
protected Process $process from  ExecTrait
protected resource|string $input from  ExecTrait
protected bool $interactive from  ExecTrait
protected bool $isPrinted from  ExecTrait
protected bool $isMetadataPrinted from  ExecTrait
protected string $workingDirectory from  ExecTrait
protected ConfigInterface $config from  ConfigAwareTrait
protected OutputAdapterInterface $outputAdapter from  VerbosityThresholdTrait
protected int $verbosityThreshold from  VerbosityThresholdTrait
protected OutputInterface $output from  OutputAwareTrait
protected TimeKeeper|null $timer from  Timer
protected null|ProgressIndicator $progressIndicator from  ProgressIndicatorAwareTrait

Methods

getCommandDescription()

{@inheritdoc}

startTimer()

No description

from  Timer
stopTimer()

No description

from  Timer
float|null
getExecutionTime()

No description

from  Timer
bool
hideTaskProgress()

No description

from  TaskIO
showTaskProgress(bool $inProgress)

No description

from  TaskIO
printTaskInfo(string $text, null|array $context = null)

Print information about a task in progress.

from  TaskIO
writeMessage(string $message)

Print a message if the selected verbosity level is over this task's verbosity threshold.

$this
detectInteractive()

Sets $this->interactive() based on posix_isatty().

$this
background(bool $arg = true)

Executes command in background mode (asynchronously)

$this
timeout(int $timeout)

Stop command if it runs longer then $timeout in seconds

$this
idleTimeout(int $timeout)

Stops command if it does not output something for a while

$this
env(string|array $env, bool|string $value = null)

Set a single environment variable, or multiple.

$this
envVars(array $env)

Sets the environment variables for the command

$this
setProcessInput(resource|string $input)

Pass an input to the process. Can be resource created with fopen() or string

$this
setInput(resource|string $input) deprecated

Pass an input to the process. Can be resource created with fopen() or string

$this
interactive(bool $interactive = true)

Attach tty to process for interactive input

bool
getPrinted()

Is command printing its output to screen

$this
dir(string $dir)

Changes working directory of command

$this
silent(bool $arg)

Shortcut for setting isPrinted() and isMetadataPrinted() to false.

$this
printed(bool $arg) deprecated

Should command output be printed

$this
printOutput(bool $arg)

Should command output be printed

$this
printMetadata(bool $arg)

Should command metadata be printed. I,e., command and timer.

execute(Process $process, callable $output_callback = null)

No description

stop()

No description

printAction(array $context = [])

No description

string
formatCommandDisplay(string $command)

No description

array
getResultData()

Gets the data array to be passed to Result().

$this
setConfig(ConfigInterface $config)

Set the config management object.

ConfigInterface
getConfig()

Get the config management object.

static string
configPrefix()

Any class that uses ConfigAwareTrait SHOULD override this method , and define a prefix for its configuration items. This is usually done in a base class. When used, this method should return a string that ends with a "."; see BaseTask::configPrefix().

static 
configClassIdentifier($classname)

No description

static 
configPostfix()

No description

static 
configure(string $key, mixed $value, ConfigInterface|null $config = null)

No description

mixed|null
getConfigValue(string $key, mixed|null $default = null)

No description

$this
setVerbosityThreshold(int $verbosityThreshold)

Required verbosity level before any TaskIO output will be produced.

int
verbosityThreshold()

No description

bool
hasOutputAdapter()

No description

$this
setOutput(OutputInterface $output)

No description

OutputInterface
output()

No description

OutputInterface
stderr()

No description

OutputInterface
getOutput() deprecated

Backwards compatibility

null|LoggerInterface
logger() deprecated

No description

from  TaskIO
printTaskSuccess(string $text, null|array $context = null)

Provide notification that some part of the task succeeded.

from  TaskIO
printTaskWarning(string $text, null|array $context = null)

Provide notification that there is something wrong, but execution can continue.

from  TaskIO
printTaskError(string $text, null|array $context = null)

Provide notification that some operation in the task failed, and the task cannot continue.

from  TaskIO
printTaskDebug($text, null|array $context = null)

Provide debugging notification. These messages are only displayed if the log level is VERBOSITY_DEBUG.

from  TaskIO
printTaskOutput(string $level, string $text, null|array $context) deprecated

No description

from  TaskIO
string
formatBytes(int $size, int $precision = 2)

Format a quantity of bytes.

from  TaskIO
string
getPrintedTaskName(null|object $task = null)

Get the formatted task name for use in task output.

from  TaskIO
array
getTaskContext(null|array $context = null)

No description

from  TaskIO
resetTimer()

No description

from  Timer
$this
setProgressIndicator(null|ProgressIndicator $progressIndicator)

No description

null|bool
hideProgressIndicator()

No description

restoreProgressIndicator(bool $visible)

No description

bool
inProgress()

No description

advanceProgressIndicator(int $steps = 1)

No description

__construct(Process $process)

No description

static ProcessExecutor
create(ContainerInterface $container, Process $process)

No description

run()

No description

Details

protected getCommandDescription()

{@inheritdoc}

protected startTimer()

No description

protected stopTimer()

No description

protected float|null getExecutionTime()

No description

Return Value

float|null

protected bool hideTaskProgress()

No description

Return Value

bool

protected showTaskProgress(bool $inProgress)

No description

Parameters

bool $inProgress

protected printTaskInfo(string $text, null|array $context = null)

Print information about a task in progress.

With the Symfony Console logger, NOTICE is displayed at VERBOSITY_VERBOSE and INFO is displayed at VERBOSITY_VERY_VERBOSE.

Robo overrides the default such that NOTICE is displayed at VERBOSITY_NORMAL and INFO is displayed at VERBOSITY_VERBOSE.

n.b. We should probably have printTaskNotice for our ordinary output, and use printTaskInfo for less interesting messages.

Parameters

string $text
null|array $context

bool verbosityMeetsThreshold()

No description

Return Value

bool

writeMessage(string $message)

Print a message if the selected verbosity level is over this task's verbosity threshold.

Parameters

string $message

$this detectInteractive()

Sets $this->interactive() based on posix_isatty().

Return Value

$this

$this background(bool $arg = true)

Executes command in background mode (asynchronously)

Parameters

bool $arg

Return Value

$this

$this timeout(int $timeout)

Stop command if it runs longer then $timeout in seconds

Parameters

int $timeout

Return Value

$this

$this idleTimeout(int $timeout)

Stops command if it does not output something for a while

Parameters

int $timeout

Return Value

$this

$this env(string|array $env, bool|string $value = null)

Set a single environment variable, or multiple.

Parameters

string|array $env
bool|string $value

Return Value

$this

$this envVars(array $env)

Sets the environment variables for the command

Parameters

array $env

Return Value

$this

$this setProcessInput(resource|string $input)

Pass an input to the process. Can be resource created with fopen() or string

Parameters

resource|string $input

Return Value

$this

$this setInput(resource|string $input) deprecated

deprecated

Pass an input to the process. Can be resource created with fopen() or string

Parameters

resource|string $input

Return Value

$this

$this interactive(bool $interactive = true)

Attach tty to process for interactive input

Parameters

bool $interactive

Return Value

$this

bool getPrinted()

Is command printing its output to screen

Return Value

bool

$this dir(string $dir)

Changes working directory of command

Parameters

string $dir

Return Value

$this

$this silent(bool $arg)

Shortcut for setting isPrinted() and isMetadataPrinted() to false.

Parameters

bool $arg

Return Value

$this

$this printed(bool $arg) deprecated

deprecated

Should command output be printed

Parameters

bool $arg

Return Value

$this

$this printOutput(bool $arg)

Should command output be printed

Parameters

bool $arg

Return Value

$this

$this printMetadata(bool $arg)

Should command metadata be printed. I,e., command and timer.

Parameters

bool $arg

Return Value

$this

protected ResultData execute(Process $process, callable $output_callback = null)

No description

Parameters

Process $process
callable $output_callback

Return Value

ResultData

protected stop()

No description

protected printAction(array $context = [])

No description

Parameters

array $context

protected string formatCommandDisplay(string $command)

No description

Parameters

string $command

Return Value

string

protected array getResultData()

Gets the data array to be passed to Result().

Return Value

array

The data array passed to Result().

$this setConfig(ConfigInterface $config)

Set the config management object.

Parameters

ConfigInterface $config

Return Value

$this

ConfigInterface getConfig()

Get the config management object.

Return Value

ConfigInterface

static protected string configPrefix()

Any class that uses ConfigAwareTrait SHOULD override this method , and define a prefix for its configuration items. This is usually done in a base class. When used, this method should return a string that ends with a "."; see BaseTask::configPrefix().

Return Value

string

static protected configClassIdentifier($classname)

No description

Parameters

$classname

static protected configPostfix()

No description

static configure(string $key, mixed $value, ConfigInterface|null $config = null)

No description

Parameters

string $key
mixed $value
ConfigInterface|null $config

protected mixed|null getConfigValue(string $key, mixed|null $default = null)

No description

Parameters

string $key
mixed|null $default

Return Value

mixed|null

$this setVerbosityThreshold(int $verbosityThreshold)

Required verbosity level before any TaskIO output will be produced.

e.g. OutputInterface::VERBOSITY_VERBOSE

Parameters

int $verbosityThreshold

Return Value

$this

int verbosityThreshold()

No description

Return Value

int

setOutputAdapter(OutputAdapterInterface $outputAdapter)

No description

Parameters

OutputAdapterInterface $outputAdapter

bool hasOutputAdapter()

No description

Return Value

bool

$this setOutput(OutputInterface $output)

No description

Parameters

OutputInterface $output

Return Value

$this

See also

\Robo\Contract\OutputAwareInterface::setOutput()

protected OutputInterface output()

No description

Return Value

OutputInterface

protected OutputInterface stderr()

No description

Return Value

OutputInterface

protected OutputInterface getOutput() deprecated

deprecated

Backwards compatibility

Return Value

OutputInterface

null|LoggerInterface logger() deprecated

deprecated

No description

Return Value

null|LoggerInterface

protected printTaskSuccess(string $text, null|array $context = null)

Provide notification that some part of the task succeeded.

With the Symfony Console logger, success messages are remapped to NOTICE, and displayed in VERBOSITY_VERBOSE. When used with the Robo logger, success messages are displayed at VERBOSITY_NORMAL.

Parameters

string $text
null|array $context

protected printTaskWarning(string $text, null|array $context = null)

Provide notification that there is something wrong, but execution can continue.

Warning messages are displayed at VERBOSITY_NORMAL.

Parameters

string $text
null|array $context

protected printTaskError(string $text, null|array $context = null)

Provide notification that some operation in the task failed, and the task cannot continue.

Error messages are displayed at VERBOSITY_NORMAL.

Parameters

string $text
null|array $context

protected printTaskDebug($text, null|array $context = null)

Provide debugging notification. These messages are only displayed if the log level is VERBOSITY_DEBUG.

Parameters

$text
null|array $context

protected printTaskOutput(string $level, string $text, null|array $context) deprecated

deprecated

No description

Parameters

string $level

One of the \Psr\Log\LogLevel constant

string $text
null|array $context

protected string formatBytes(int $size, int $precision = 2)

Format a quantity of bytes.

Parameters

int $size
int $precision

Return Value

string

protected string getPrintedTaskName(null|object $task = null)

Get the formatted task name for use in task output.

This is placed in the task context under 'name', and used as the log label by Robo\Common\RoboLogStyle, which is inserted at the head of log messages by Robo\Common\CustomLogStyle::formatMessage().

Parameters

null|object $task

Return Value

string

protected array getTaskContext(null|array $context = null)

No description

Parameters

null|array $context

Return Value

array

Context information.

protected resetTimer()

No description

int progressIndicatorSteps()

No description

Return Value

int

$this setProgressIndicator(null|ProgressIndicator $progressIndicator)

No description

Parameters

null|ProgressIndicator $progressIndicator

Return Value

$this

protected null|bool hideProgressIndicator()

No description

Return Value

null|bool

protected showProgressIndicator()

No description

protected restoreProgressIndicator(bool $visible)

No description

Parameters

bool $visible

protected int getTotalExecutionTime()

No description

Return Value

int

protected startProgressIndicator()

No description

protected bool inProgress()

No description

Return Value

bool

protected stopProgressIndicator()

No description

protected disableProgressIndicator()

No description

protected detatchProgressIndicator()

No description

protected advanceProgressIndicator(int $steps = 1)

No description

Parameters

int $steps

__construct(Process $process)

No description

Parameters

Process $process

static ProcessExecutor create(ContainerInterface $container, Process $process)

No description

Parameters

ContainerInterface $container
Process $process

Return Value

ProcessExecutor

run()

No description