Skip to content

Using Console Commands, Shortcuts and Built-in Commands

Warning: You are browsing the documentation for Symfony 4.x, which is no longer maintained.

Read the updated version of this page for Symfony 7.1 (the current stable version).

In addition to the options you specify for your commands, there are some built-in options as well as a couple of built-in commands for the Console component.

Note

These examples assume you have added a file application.php to run at the CLI:

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env php
<?php
// application.php

require __DIR__.'/vendor/autoload.php';

use Symfony\Component\Console\Application;

$application = new Application();
// ...
$application->run();

Built-in Commands

There is a built-in command list which outputs all the standard options and the registered commands:

1
$ php application.php list

You can get the same output by not running any command as well

1
$ php application.php

The help command lists the help information for the specified command. For example, to get the help for the list command:

1
$ php application.php help list

Running help without specifying a command will list the global options:

1
$ php application.php help

Global Options

You can get help information for any command with the --help option. To get help for the list command:

1
2
$ php application.php list --help
$ php application.php list -h

You can suppress output with:

1
2
$ php application.php list --quiet
$ php application.php list -q

You can get more verbose messages (if this is supported for a command) with:

1
2
$ php application.php list --verbose
$ php application.php list -v

To output even more verbose messages you can use these options:

1
2
$ php application.php list -vv
$ php application.php list -vvv

If you set the optional arguments to give your application a name and version:

1
$application = new Application('Acme Console Application', '1.2');

then you can use:

1
2
$ php application.php list --version
$ php application.php list -V

to get this information output:

1
Acme Console Application version 1.2

If you do not provide a console name then it will just output:

1
console tool

You can force turning on ANSI output coloring with:

1
$ php application.php list --ansi

or turn it off with:

1
$ php application.php list --no-ansi

You can suppress any interactive questions from the command you are running with:

1
2
$ php application.php list --no-interaction
$ php application.php list -n

Shortcut Syntax

You do not have to type out the full command names. You can just type the shortest unambiguous name to run a command. So if there are non-clashing commands, then you can run help like this:

1
$ php application.php h

If you have commands using : to namespace commands then you only need to type the shortest unambiguous text for each part. If you have created the demo:greet as shown in The Console Component then you can run it with:

1
2
3
4
5
6
$ php application.php d:g Fabien

# as long as it's unambiguous, you can also mix upper and lower case
# php application.php Demo:g Fabien
# php application.php de:Gr Fabien
# php application.php DE:Gre Fabien

If you enter a short command that's ambiguous (i.e. there are more than one command that match), then no command will be run and some suggestions of the possible commands to choose from will be output.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.
TOC
    Version