Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Feature: Change the Default Command in the Console component #3426

Merged
merged 9 commits into from
Jan 9, 2014
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.

will always run the ``ListCommand`` when no command name is passed. In order to change
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:

.. code-block:: bash

$ php application.php

This will print the following to the command line:

.. code-block:: text

Hello Fabien

.. tip::

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 Author

Choose a reason for hiding this comment

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

apparently the indentation here was not correct before. Now is consistent with the other documents.


Building a Single Command Application
=====================================
Expand Down
1 change: 1 addition & 0 deletions components/map.rst.inc
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
* :doc:`/components/console/introduction`
* :doc:`/components/console/usage`
* :doc:`/components/console/single_command_tool`
* :doc:`/components/console/changing_default_command`
* :doc:`/components/console/events`
* :doc:`/components/console/helpers/index`

Expand Down