This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Console
Fabien Potencier 782ba96f76 Merge branch '2.5'
* 2.5:
  updated VERSION for 2.4.7
  updated CHANGELOG for 2.4.7
  bumped Symfony version to 2.3.18
  updated VERSION for 2.3.17
  update CONTRIBUTORS for 2.3.17
  updated CHANGELOG for 2.3.17
  added XSD to PHPUnit configuration
  fix the return types
  add missing docblock for ProcessBuilder::addEnvironmentVariables()
  bug #11319 [HttpKernel] Ensure the storage exists before purging it in ProfilerTest
  [Translation] Added unescaping of ids in PoFileLoader
  updated italian translation for validation messages
  [DomCrawler] Fix docblocks and formatting.
  [DomCrawler] Remove the query string and the anchor of the uri of a link
  Simplified the Travis test command
  Remove Expression Language services when the component is unavailable
  Added SK translations
  [Console] Make sure formatter is the same
2014-07-08 14:21:41 +02:00
..
Command Merge branch '2.4' 2014-04-16 12:36:21 +02:00
Descriptor made types consistent with those defined in Hack 2014-04-16 10:04:32 +02:00
Event Merge branch '2.3' into 2.4 2014-04-16 12:34:31 +02:00
Formatter [Console] OutputFormatter Unset Bold has wrong id 2014-06-03 22:33:46 +02:00
Helper Merge branch '2.5' 2014-06-20 19:41:51 +02:00
Input Merge branch '2.4' 2014-04-16 12:36:21 +02:00
Logger [Console] Added standalone PSR-3 compliant logger 2014-03-19 16:21:15 +01:00
Output Merge branch '2.4' into 2.5 2014-07-08 14:21:33 +02:00
Question [Console] remove weird use statement 2014-06-18 07:37:22 -05:00
Resources/bin Move hiddeninput.exe to Resources/bin 2012-10-16 11:08:11 +02:00
Tester fixed types in phpdocs 2014-04-16 12:34:42 +02:00
Tests Merge branch '2.5' 2014-07-08 14:21:41 +02:00
.gitignore Added missing files .gitignore 2013-07-21 14:12:18 +02:00
Application.php [Console] Add process helper tests 2014-06-11 08:54:52 +02:00
CHANGELOG.md [Console] Add process helper tests 2014-06-11 08:54:52 +02:00
composer.json [Console] Add process helper tests 2014-06-11 08:54:52 +02:00
ConsoleEvents.php [Console] renamed ConsoleForExceptionEvent into ConsoleExceptionEvent 2013-05-27 12:36:30 +02:00
LICENSE update year on licenses 2014-01-07 08:19:25 -05:00
phpunit.xml.dist added XSD to PHPUnit configuration 2014-07-07 11:57:21 +02:00
README.md updated the composer install command to reflect changes in Composer 2013-09-18 09:27:26 +02:00
Shell.php Merge branch '2.3' into 2.4 2014-04-16 12:34:31 +02:00

Console Component

Console eases the creation of beautiful and testable command line interfaces.

The Application object manages the CLI application:

use Symfony\Component\Console\Application;

$console = new Application();
$console->run();

The run() method parses the arguments and options passed on the command line and executes the right command.

Registering a new command can easily be done via the register() method, which returns a Command instance:

use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;

$console
    ->register('ls')
    ->setDefinition(array(
        new InputArgument('dir', InputArgument::REQUIRED, 'Directory name'),
    ))
    ->setDescription('Displays the files in the given directory')
    ->setCode(function (InputInterface $input, OutputInterface $output) {
        $dir = $input->getArgument('dir');

        $output->writeln(sprintf('Dir listing for <info>%s</info>', $dir));
    })
;

You can also register new commands via classes.

The component provides a lot of features like output coloring, input and output abstractions (so that you can easily unit-test your commands), validation, automatic help messages, ...

Tests

You can run the unit tests with the following command:

$ cd path/to/Symfony/Component/Console/
$ composer.phar install
$ phpunit

Third Party

Resources/bin/hiddeninput.exe is a third party binary provided within this component. Find sources and license at https://github.com/Seldaek/hidden-input.

Resources

The Console Component

How to create a Console Command