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 967c0e439a Merge branch '2.8'
* 2.8: (23 commits)
  [Validator] added BIC (SWIFT-BIC) validation constraint
  [TwigBridge] Foundation form layout integration
  [Security] Deprecated supportsAttribute and supportsClass methods
  bumped Symfony version to 2.7.6
  updated VERSION for 2.7.5
  updated CHANGELOG for 2.7.5
  bumped Symfony version to 2.3.34
  updated VERSION for 2.3.33
  update CONTRIBUTORS for 2.3.33
  updated CHANGELOG for 2.3.33
  [Console] Fix transient HHVM test
  [OptionsResolver] Fix catched exception along the dependency tree mistakenly detects cyclic dependencies
  fixed tests
  [DI] Support deprecated definitions in decorators
  [DI] Allow to change the deprecation message in Definition
  [DI] Trigger a deprecated error on the container builder
  [DI] Dump the deprecated status
  [DI] Supports the deprecated tag in loaders
  [DI] Add a deprecated status to definitions
  Fixing test locations
  ...
2015-09-26 09:20:46 +02:00
..
Command Merge branch '2.8' 2015-09-25 12:59:21 +02:00
Descriptor Merge branch '2.8' 2015-09-25 12:59:21 +02:00
Event fixes CS 2015-08-24 09:13:45 +02:00
Exception [Console] Add domain exceptions to replace generic exceptions 2015-09-25 08:44:39 +02:00
Formatter [Console] Add domain exceptions to replace generic exceptions 2015-09-25 08:44:39 +02:00
Helper Merge branch '2.8' 2015-09-25 12:59:21 +02:00
Input Merge branch '2.8' 2015-09-25 12:59:21 +02:00
Logger fixes CS 2015-08-24 09:13:45 +02:00
Output Merge branch '2.8' 2015-09-25 12:59:21 +02:00
Question [Console] Add domain exceptions to replace generic exceptions 2015-09-25 08:44:39 +02:00
Resources/bin Move hiddeninput.exe to Resources/bin 2012-10-16 11:08:11 +02:00
Style Merge branch '2.8' 2015-09-25 12:59:21 +02:00
Tester Fix currently broken tests 2015-04-04 14:23:36 +02:00
Tests Merge branch '2.8' 2015-09-26 09:20:46 +02:00
.gitignore Added missing files .gitignore 2013-07-21 14:12:18 +02:00
Application.php Merge branch '2.8' 2015-09-25 12:59:21 +02:00
CHANGELOG.md [Console] Use readline for user input when available 2015-08-01 11:46:56 +02:00
composer.json Merge branch '2.8' 2015-05-12 17:48:43 +02:00
ConsoleEvents.php Add machine readable events 2014-11-16 18:21:02 +01:00
LICENSE Updated copyright to 2015 2015-01-01 13:56:52 +01:00
phpunit.xml.dist [2.3] require-dev PHPUnit bridge 2015-02-24 11:24:26 +01:00
README.md link to https://symfony.com where possible 2015-05-01 16:06:45 +02:00
Shell.php [Console] Add domain exceptions to replace generic exceptions 2015-09-25 08:44:39 +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 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