Skip to content

Commit

Permalink
feature #3426 New Feature: Change the Default Command in the Console …
Browse files Browse the repository at this point in the history
…component (danielcsgomes)

This PR was merged into the master branch.

Discussion
----------

New Feature: Change the Default Command in the Console component

| Q             | A
| ------------- | ---
| Doc fix?      | no
| New docs?     | yes (symfony/symfony#9776)
| Applies to    | 2.5+
| Fixed tickets |

I followed the suggestion from @wouterj in IRC on changing the `single_command_tool` and added the documentation for the new feature there.

Commits
-------

c1b2aad Applied suggestions from Ryan
5e97202 Applyed suggestions from @fabpot and @stof
c23f34e Applied some suggestions
012456d Moved `versionadded` to the right section
730985f Updated references to the new document
af9eac4 Changed the code to remove references to Symfony Framework since it's the standalone component
60e2b3e Added the delete document to avoid broken urls and added a notice that the document was moved to another location
11c7174 Added the version number where the setDefaultCommand was introduced
b29ab89 Documented the Change the Default Command in the Console component
  • Loading branch information
weaverryan committed Jan 9, 2014
2 parents 0f90fed + c1b2aad commit 6db5f23
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 1 deletion.
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

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

0 comments on commit 6db5f23

Please sign in to comment.