Skip to content
67 changes: 67 additions & 0 deletions components/console/changing_default_command.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
.. index::
single: Console; Changing the Default Command

Changing the Default Command
============================

.. versionadded:: 2.5,
The :method:`Symfony\\Component\\Console\\Application::setDefaultCommand`
method was introduced in version 2.5.

By default the Application will always run the ``ListCommand``. In order to change
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By default,

Perhaps:

will always run the ``ListCommand`` when no command name is passed

the default command you just need to pass the command name you want to run by
default to the ``setDefaultCommand`` method::

namespace Acme\Command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class HelloWorldCommand extends Command
{
protected function configure()
{
$this->setName('hello:world')
->setDescription('Outputs \'Hello World\'');
}

protected function execute(InputInterface $input, OutputInterface $output)
{
$output->writeln('Hello World');
}
}

Executing the application and changing the default Command::

// application.php

use Acme\Command\HelloWorldCommand;
use Symfony\Component\Console\Application;

$command = new HelloWorldCommand();
$application = new Application();
$application->add($command);
$application->setDefaultCommand($command->getName());
$application->run();

Test the new default console command by running the following
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

following:


.. code-block:: bash

$ php application.php

This will print the following to the command line:

.. code-block:: text

Hello Fabien

.. tip::

The feature was a limitation since you cannot use the Command ``arguments``.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

feature has a limitation?

Perhaps:

This feature has a limitation: you cannot use it with any Command arguments.


Learn More!
-----------

* :doc:`/components/console/single_command_tool`
1 change: 1 addition & 0 deletions components/console/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Console

introduction
usage
changing_default_command
single_command_tool
events
helpers/index
1 change: 1 addition & 0 deletions components/console/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -526,6 +526,7 @@ Learn More!

* :doc:`/components/console/usage`
* :doc:`/components/console/single_command_tool`
* :doc:`/components/console/changing_default_command`

.. _Packagist: https://packagist.org/packages/symfony/console
.. _ANSICON: https://github.com/adoxa/ansicon/downloads
2 changes: 1 addition & 1 deletion components/console/single_command_tool.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.. index::
single: Console; Single command application
single: Console; Single command application
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this change intentional?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no, and didn't notice that will revert! Thanks


Building a Single Command Application
=====================================
Expand Down
2 changes: 1 addition & 1 deletion components/map.rst.inc
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

* :doc:`/components/console/introduction`
* :doc:`/components/console/usage`
* :doc:`/components/console/single_command_tool`
* :doc:`/components/console/changing_default_behavior`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Careful, I we need both of these now :)

* :doc:`/components/console/events`
* :doc:`/components/console/helpers/index`

Expand Down