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')

Constructor.

setDispatcher(EventDispatcherInterface $dispatcher)

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)

Set a helper set to be used with the command.

getHelperSet()

Get the helper set associated with the command.

setDefinition(InputDefinition $definition)

Set an input definition set to be used with this application.

getDefinition()

Gets the InputDefinition related to this Application.

string
getHelp()

Gets the help message.

setCatchExceptions(bool $boolean)

Sets whether to catch exceptions or not during commands execution.

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.

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.

array
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.

array
getTerminalDimensions()

Tries to figure out the terminal dimensions based on the current environment.

setTerminalDimensions(int $width, int $height)

Sets terminal dimensions.

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

Returns the namespace part of the command name.

setDefaultCommand(string $commandName)

Sets the default Command name.

Details

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

Constructor.

Parameters

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

at line line 89
setDispatcher(EventDispatcherInterface $dispatcher)

Parameters

EventDispatcherInterface $dispatcher

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

Runs the current application.

Parameters

InputInterface $input An Input instance
OutputInterface $output An Output instance

Return Value

int 0 if everything went fine, or an error code

Exceptions

Exception When doRun returns Exception

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

Runs the current application.

Parameters

InputInterface $input An Input instance
OutputInterface $output An Output instance

Return Value

int 0 if everything went fine, or an error code

at line line 197
setHelperSet(HelperSet $helperSet)

Set a helper set to be used with the command.

Parameters

HelperSet $helperSet The helper set

at line line 207
HelperSet getHelperSet()

Get the helper set associated with the command.

Return Value

HelperSet The HelperSet instance associated with this command

at line line 217
setDefinition(InputDefinition $definition)

Set an input definition set to be used with this application.

Parameters

InputDefinition $definition The input definition

at line line 227
InputDefinition getDefinition()

Gets the InputDefinition related to this Application.

Return Value

InputDefinition The InputDefinition instance

at line line 237
string getHelp()

Gets the help message.

Return Value

string A help message.

at line line 247
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 line 257
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 line 267
string getName()

Gets the name of the application.

Return Value

string The application name

at line line 277
setName(string $name)

Sets the application name.

Parameters

string $name The application name

at line line 287
string getVersion()

Gets the application version.

Return Value

string The application version

at line line 297
setVersion(string $version)

Sets the application version.

Parameters

string $version The application version

at line line 307
string getLongVersion()

Returns the long version of the application.

Return Value

string The long application version

at line line 323
Command register(string $name)

Registers a new command.

Parameters

string $name The command name

Return Value

Command The newly created command

at line line 333
addCommands(array $commands)

Adds an array of command objects.

Parameters

array $commands An array of commands

at line line 349
Command add(Command $command)

Adds a command object.

If a command with the same name already exists, it will be overridden.

Parameters

Command $command A Command object

Return Value

Command The registered command

at line line 381
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 command name given does not exist

at line line 408
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 line 420
array getNamespaces()

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

It does not returns the global namespace which always exists.

Return Value

array An array of namespaces

at line line 443
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

CommandNotFoundException When namespace is incorrect or ambiguous

at line line 485
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 line 540
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 line 563
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 line 582
renderException(Exception $e, OutputInterface $output)

Renders a caught exception.

Parameters

Exception $e An exception instance
OutputInterface $output An OutputInterface instance

at line line 681
array getTerminalDimensions()

Tries to figure out the terminal dimensions based on the current environment.

Return Value

array Array containing width and height

at line line 722
Application setTerminalDimensions(int $width, int $height)

Sets terminal dimensions.

Can be useful to force terminal dimensions for functional tests.

Parameters

int $width The width
int $height The height

Return Value

Application The current application

at line line 953
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 line 1017
setDefaultCommand(string $commandName)

Sets the default Command name.

Parameters

string $commandName The Command name