Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

[READ-ONLY] Subtree split of the Symfony Console Component -- clone into Symfony/Component/ (master at symfony/symfony)

This branch is 1 commit ahead and 401 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.md

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:

phpunit

Resources

The Console Component

How to create a Console Command

Something went wrong with that request. Please try again.