class Command

Base class for all commands.

Properties

static protected string|null $defaultName

Methods

static string|null
getDefaultName()

No description

__construct(string $name = null)

No description

ignoreValidationErrors()

Ignores validation errors.

setApplication(Application $application = null)

No description

setHelperSet(HelperSet $helperSet)

No description

getHelperSet()

Gets the helper set.

getApplication()

Gets the application instance for this command.

bool
isEnabled()

Checks whether the command is enabled or not in the current environment.

configure()

Configures the current command.

int|null
execute(InputInterface $input, OutputInterface $output)

Executes the current command.

interact(InputInterface $input, OutputInterface $output)

Interacts with the user.

initialize(InputInterface $input, OutputInterface $output)

Initializes the command after the input has been bound and before the input is validated.

int
run(InputInterface $input, OutputInterface $output)

Runs the command.

$this
setCode(callable $code)

Sets the code to execute when running this command.

mergeApplicationDefinition(bool $mergeArgs = true)

Merges the application definition with the command definition.

$this
setDefinition(array|InputDefinition $definition)

Sets an array of argument and option instances.

getDefinition()

Gets the InputDefinition attached to this Command.

getNativeDefinition()

Gets the InputDefinition to be used to create representations of this Command.

$this
addArgument(string $name, int|null $mode = null, string $description = '', string|string[]|null $default = null)

Adds an argument.

$this
addOption(string $name, string|array $shortcut = null, int|null $mode = null, string $description = '', string|string[]|bool|null $default = null)

Adds an option.

$this
setName(string $name)

Sets the name of the command.

$this
setProcessTitle(string $title)

Sets the process title of the command.

string
getName()

Returns the command name.

setHidden(bool $hidden)

No description

bool
isHidden()

No description

$this
setDescription(string $description)

Sets the description for the command.

string
getDescription()

Returns the description for the command.

$this
setHelp(string $help)

Sets the help for the command.

string
getHelp()

Returns the help for the command.

string
getProcessedHelp()

Returns the processed help for the command replacing the %command.name% and %command.full_name% patterns with the real values dynamically.

$this
setAliases(string[] $aliases)

Sets the aliases for the command.

array
getAliases()

Returns the aliases for the command.

string
getSynopsis(bool $short = false)

Returns the synopsis for the command.

$this
addUsage(string $usage)

Add a command usage example.

array
getUsages()

Returns alternative usages of the command.

mixed
getHelper(string $name)

Gets a helper instance by name.

Details

at line 56
static string|null getDefaultName()

Return Value

string|null The default command name or null when no default name is set

at line 69
__construct(string $name = null)

Parameters

string $name The name of the command; passing null means it must be set in configure()

Exceptions

LogicException When the command name is empty

at line 85
ignoreValidationErrors()

Ignores validation errors.

This is mainly useful for the help command.

at line 90
setApplication(Application $application = null)

Parameters

Application $application

at line 100
setHelperSet(HelperSet $helperSet)

Parameters

HelperSet $helperSet

at line 110
HelperSet getHelperSet()

Gets the helper set.

Return Value

HelperSet A HelperSet instance

at line 120
Application getApplication()

Gets the application instance for this command.

Return Value

Application An Application instance

at line 133
bool isEnabled()

Checks whether the command is enabled or not in the current environment.

Override this to check for x or y and return false if the command can not run properly under the current conditions.

Return Value

bool

at line 141
protected configure()

Configures the current command.

at line 159
protected int|null execute(InputInterface $input, OutputInterface $output)

Executes the current command.

This method is not abstract because you can use this class as a concrete class. In this case, instead of defining the execute() method, you set the code to execute by passing a Closure to the setCode() method.

Parameters

InputInterface $input
OutputInterface $output

Return Value

int|null null or 0 if everything went fine, or an error code

Exceptions

LogicException When this abstract method is not implemented

See also

setCode()

at line 171
protected interact(InputInterface $input, OutputInterface $output)

Interacts with the user.

This method is executed before the InputDefinition is validated. This means that this is the only place where the command can interactively ask for values of missing required arguments.

Parameters

InputInterface $input
OutputInterface $output

at line 185
protected initialize(InputInterface $input, OutputInterface $output)

Initializes the command after the input has been bound and before the input is validated.

This is mainly useful when a lot of commands extends one main command where some things need to be initialized based on the input arguments and options.

at line 203
int run(InputInterface $input, OutputInterface $output)

Runs the command.

The code to execute is either defined directly with the setCode() method or by overriding the execute() method in a sub-class.

Parameters

InputInterface $input
OutputInterface $output

Return Value

int The command exit code

Exceptions

Exception When binding input fails. Bypass this by calling {@link ignoreValidationErrors()}.

See also

setCode()
execute()

at line 275
$this setCode(callable $code)

Sets the code to execute when running this command.

If this method is used, it overrides the code defined in the execute() method.

Parameters

callable $code A callable(InputInterface $input, OutputInterface $output)

Return Value

$this

Exceptions

InvalidArgumentException

See also

execute()

at line 296
mergeApplicationDefinition(bool $mergeArgs = true)

Merges the application definition with the command definition.

This method is not part of public API and should not be used directly.

Parameters

bool $mergeArgs Whether to merge or not the Application definition arguments to Command definition arguments

at line 323
$this setDefinition(array|InputDefinition $definition)

Sets an array of argument and option instances.

Parameters

array|InputDefinition $definition An array of argument and option instances or a definition instance

Return Value

$this

at line 341
InputDefinition getDefinition()

Gets the InputDefinition attached to this Command.

Return Value

InputDefinition An InputDefinition instance

at line 356
InputDefinition getNativeDefinition()

Gets the InputDefinition to be used to create representations of this Command.

Can be overridden to provide the original command representation when it would otherwise be changed by merging with the application InputDefinition.

This method is not part of public API and should not be used directly.

Return Value

InputDefinition An InputDefinition instance

at line 373
$this addArgument(string $name, int|null $mode = null, string $description = '', string|string[]|null $default = null)

Adds an argument.

Parameters

string $name The argument name
int|null $mode The argument mode: self::REQUIRED or self::OPTIONAL
string $description A description text
string|string[]|null $default The default value (for self::OPTIONAL mode only)

Return Value

$this

Exceptions

InvalidArgumentException When argument mode is not valid

at line 393
$this addOption(string $name, string|array $shortcut = null, int|null $mode = null, string $description = '', string|string[]|bool|null $default = null)

Adds an option.

Parameters

string $name The option name
string|array $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts
int|null $mode The option mode: One of the VALUE_* constants
string $description A description text
string|string[]|bool|null $default The default value (must be null for self::VALUE_NONE)

Return Value

$this

Exceptions

InvalidArgumentException If option mode is invalid or incompatible

at line 414
$this setName(string $name)

Sets the name of the command.

This method can set both the namespace and the name if you separate them by a colon (:)

$command->setName('foo:bar');

Parameters

string $name The command name

Return Value

$this

Exceptions

InvalidArgumentException When the name is invalid

at line 435
$this setProcessTitle(string $title)

Sets the process title of the command.

This feature should be used only when creating a long process command, like a daemon.

PHP 5.5+ or the proctitle PECL library is required

Parameters

string $title The process title

Return Value

$this

at line 447
string getName()

Returns the command name.

Return Value

string The command name

at line 457
Command setHidden(bool $hidden)

Parameters

bool $hidden Whether or not the command should be hidden from the list of commands

Return Value

Command The current instance

at line 467
bool isHidden()

Return Value

bool whether the command should be publicly shown or not

at line 479
$this setDescription(string $description)

Sets the description for the command.

Parameters

string $description The description for the command

Return Value

$this

at line 491
string getDescription()

Returns the description for the command.

Return Value

string The description for the command

at line 503
$this setHelp(string $help)

Sets the help for the command.

Parameters

string $help The help for the command

Return Value

$this

at line 515
string getHelp()

Returns the help for the command.

Return Value

string The help for the command

at line 526
string getProcessedHelp()

Returns the processed help for the command replacing the %command.name% and %command.full_name% patterns with the real values dynamically.

Return Value

string The processed help for the command

at line 551
$this setAliases(string[] $aliases)

Sets the aliases for the command.

Parameters

string[] $aliases An array of aliases for the command

Return Value

$this

Exceptions

InvalidArgumentException When an alias is invalid

at line 571
array getAliases()

Returns the aliases for the command.

Return Value

array An array of aliases for the command

at line 583
string getSynopsis(bool $short = false)

Returns the synopsis for the command.

Parameters

bool $short Whether to show the short version of the synopsis (with options folded) or not

Return Value

string The synopsis

at line 601
$this addUsage(string $usage)

Add a command usage example.

Parameters

string $usage The usage, it'll be prefixed with the command name

Return Value

$this

at line 617
array getUsages()

Returns alternative usages of the command.

Return Value

array

at line 632
mixed getHelper(string $name)

Gets a helper instance by name.

Parameters

string $name The helper name

Return Value

mixed The helper value

Exceptions

LogicException if no HelperSet is defined
InvalidArgumentException if the helper is not defined