class Application

An Application is the container for a collection of commands.

It is the main entry point of a Console application.

This class is optimized for a standard CLI environment.

Usage:

$app = new Application('myapp', '1.0 (stable)');
$app->add(new SimpleCommand());
$app->run();

Methods

__construct(string $name = 'UNKNOWN', string $version = 'UNKNOWN')

No description

setDispatcher(EventDispatcherInterface $dispatcher)

No description

setCommandLoader(CommandLoaderInterface $commandLoader)

No description

int
run(InputInterface $input = null, OutputInterface $output = null)

Runs the current application.

int
doRun(InputInterface $input, OutputInterface $output)

Runs the current application.

setHelperSet(HelperSet $helperSet)

No description

getHelperSet()

Get the helper set associated with the command.

setDefinition(InputDefinition $definition)

No description

getDefinition()

Gets the InputDefinition related to this Application.

string
getHelp()

Gets the help message.

bool
areExceptionsCaught()

Gets whether to catch exceptions or not during commands execution.

setCatchExceptions(bool $boolean)

Sets whether to catch exceptions or not during commands execution.

bool
isAutoExitEnabled()

Gets whether to automatically exit after a command execution or not.

setAutoExit(bool $boolean)

Sets whether to automatically exit after a command execution or not.

string
getName()

Gets the name of the application.

setName(string $name)

Sets the application name.

string
getVersion()

Gets the application version.

setVersion(string $version)

Sets the application version.

string
getLongVersion()

Returns the long version of the application.

register(string $name)

Registers a new command.

addCommands(array $commands)

Adds an array of command objects.

Command|null
add(Command $command)

Adds a command object.

get(string $name)

Returns a registered command by name or alias.

bool
has(string $name)

Returns true if the command exists, false otherwise.

string[]
getNamespaces()

Returns an array of all unique namespaces used by currently registered commands.

string
findNamespace(string $namespace)

Finds a registered namespace by a name or an abbreviation.

find(string $name)

Finds a command by name or alias.

all(string $namespace = null)

Gets the commands (registered in the given namespace if provided).

static array
getAbbreviations(array $names)

Returns an array of possible abbreviations given a set of names.

renderException(Exception $e, OutputInterface $output)

Renders a caught exception.

doRenderException(Exception $e, OutputInterface $output)

No description

configureIO(InputInterface $input, OutputInterface $output)

Configures the input and output instances based on the user arguments and options.

int
doRunCommand(Command $command, InputInterface $input, OutputInterface $output)

Runs the current command.

string
getCommandName(InputInterface $input)

Gets the name of the command based on input.

getDefaultInputDefinition()

Gets the default input definition.

getDefaultCommands()

Gets the default commands that should always be available.

getDefaultHelperSet()

Gets the default helper set with the helpers that should always be available.

string
extractNamespace(string $name, string $limit = null)

Returns the namespace part of the command name.

setDefaultCommand(string $commandName, bool $isSingleCommand = false)

Sets the default Command name.

Details

at line 85
__construct(string $name = 'UNKNOWN', string $version = 'UNKNOWN')

Parameters

string $name The name of the application
string $version The version of the application

at line 93
setDispatcher(EventDispatcherInterface $dispatcher)

Parameters

EventDispatcherInterface $dispatcher

at line 98
setCommandLoader(CommandLoaderInterface $commandLoader)

Parameters

CommandLoaderInterface $commandLoader

at line 110
int run(InputInterface $input = null, OutputInterface $output = null)

Runs the current application.

Parameters

InputInterface $input
OutputInterface $output

Return Value

int 0 if everything went fine, or an error code

Exceptions

Exception When running fails. Bypass this when {@link setCatchExceptions()}.

at line 194
int doRun(InputInterface $input, OutputInterface $output)

Runs the current application.

Parameters

InputInterface $input
OutputInterface $output

Return Value

int 0 if everything went fine, or an error code

at line 268
setHelperSet(HelperSet $helperSet)

Parameters

HelperSet $helperSet

at line 278
HelperSet getHelperSet()

Get the helper set associated with the command.

Return Value

HelperSet The HelperSet instance associated with this command

at line 287
setDefinition(InputDefinition $definition)

Parameters

InputDefinition $definition

at line 297
InputDefinition getDefinition()

Gets the InputDefinition related to this Application.

Return Value

InputDefinition The InputDefinition instance

at line 318
string getHelp()

Gets the help message.

Return Value

string A help message

at line 328
bool areExceptionsCaught()

Gets whether to catch exceptions or not during commands execution.

Return Value

bool Whether to catch exceptions or not during commands execution

at line 338
setCatchExceptions(bool $boolean)

Sets whether to catch exceptions or not during commands execution.

Parameters

bool $boolean Whether to catch exceptions or not during commands execution

at line 348
bool isAutoExitEnabled()

Gets whether to automatically exit after a command execution or not.

Return Value

bool Whether to automatically exit after a command execution or not

at line 358
setAutoExit(bool $boolean)

Sets whether to automatically exit after a command execution or not.

Parameters

bool $boolean Whether to automatically exit after a command execution or not

at line 368
string getName()

Gets the name of the application.

Return Value

string The application name

at line 378
setName(string $name)

Sets the application name.

Parameters

string $name The application name

at line 388
string getVersion()

Gets the application version.

Return Value

string The application version

at line 398
setVersion(string $version)

Sets the application version.

Parameters

string $version The application version

at line 408
string getLongVersion()

Returns the long version of the application.

Return Value

string The long application version

at line 428
Command register(string $name)

Registers a new command.

Parameters

string $name The command name

Return Value

Command The newly created command

at line 440
addCommands(array $commands)

Adds an array of command objects.

If a Command is not enabled it will not be added.

Parameters

array $commands An array of commands

at line 455
Command|null add(Command $command)

Adds a command object.

If a command with the same name already exists, it will be overridden. If the command is not enabled it will not be added.

Parameters

Command $command

Return Value

Command|null The registered command if enabled or null

at line 493
Command get(string $name)

Returns a registered command by name or alias.

Parameters

string $name The command name or alias

Return Value

Command A Command object

Exceptions

CommandNotFoundException When given command name does not exist

at line 522
bool has(string $name)

Returns true if the command exists, false otherwise.

Parameters

string $name The command name or alias

Return Value

bool true if the command exists, false otherwise

at line 536
string[] getNamespaces()

Returns an array of all unique namespaces used by currently registered commands.

It does not return the global namespace which always exists.

Return Value

string[] An array of namespaces

at line 559
string findNamespace(string $namespace)

Finds a registered namespace by a name or an abbreviation.

Parameters

string $namespace A namespace or abbreviation to search for

Return Value

string A registered namespace

Exceptions

NamespaceNotFoundException When namespace is incorrect or ambiguous

at line 601
Command find(string $name)

Finds a command by name or alias.

Contrary to get, this command tries to find the best match if you give it an abbreviation of a name or alias.

Parameters

string $name A command name or a command alias

Return Value

Command A Command instance

Exceptions

CommandNotFoundException When command name is incorrect or ambiguous

at line 679
Command[] all(string $namespace = null)

Gets the commands (registered in the given namespace if provided).

The array keys are the full names and the values the command instances.

Parameters

string $namespace A namespace name

Return Value

Command[] An array of Command instances

at line 723
static array getAbbreviations(array $names)

Returns an array of possible abbreviations given a set of names.

Parameters

array $names An array of names

Return Value

array An array of abbreviations

at line 739
renderException(Exception $e, OutputInterface $output)

Renders a caught exception.

Parameters

Exception $e
OutputInterface $output

at line 751
protected doRenderException(Exception $e, OutputInterface $output)

Parameters

Exception $e
OutputInterface $output

at line 814
protected configureIO(InputInterface $input, OutputInterface $output)

Configures the input and output instances based on the user arguments and options.

Parameters

InputInterface $input
OutputInterface $output

at line 877
protected int doRunCommand(Command $command, InputInterface $input, OutputInterface $output)

Runs the current command.

If an event dispatcher has been attached to the application, events are also dispatched during the life-cycle of the command.

Parameters

Command $command
InputInterface $input
OutputInterface $output

Return Value

int 0 if everything went fine, or an error code

at line 933
protected string getCommandName(InputInterface $input)

Gets the name of the command based on input.

Parameters

InputInterface $input

Return Value

string The command name

at line 943
protected InputDefinition getDefaultInputDefinition()

Gets the default input definition.

Return Value

InputDefinition An InputDefinition instance

at line 963
protected Command[] getDefaultCommands()

Gets the default commands that should always be available.

Return Value

Command[] An array of default Command instances

at line 973
protected HelperSet getDefaultHelperSet()

Gets the default helper set with the helpers that should always be available.

Return Value

HelperSet A HelperSet instance

at line 1005
string extractNamespace(string $name, string $limit = null)

Returns the namespace part of the command name.

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

Parameters

string $name The full name of the command
string $limit The maximum number of parts of the namespace

Return Value

string The namespace of the command

at line 1072
Application setDefaultCommand(string $commandName, bool $isSingleCommand = false)

Sets the default Command name.

Parameters

string $commandName The Command name
bool $isSingleCommand Set to true if there is only one command in this application

Return Value

Application