Browse files

tweaked the README files

  • Loading branch information...
1 parent 67b920b commit 456d1b81f11beac277c8e281391e6ba9d9819394 @fabpot fabpot committed Dec 18, 2011
Showing with 38 additions and 34 deletions.
  1. +38 −34 README.md
View
72 README.md
@@ -1,40 +1,44 @@
Console Component
=================
-Even if we are talking about a web framework, having some tools to manage
-your project from the command line is nice. In Symfony2, we use the console
-to generate CRUDs, update the database schema, etc. It's not required, but
-it is really convenient and it can boost your productivity a lot.
-
-This example shows how to create a command line tool very easily:
-
-```
-use Symfony\Component\Console\Application;
-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 = new Application();
-$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));
- })
-;
-
-$console->run();
-```
-
-With only 10 lines of code or so, you have access to a lot of features like output
-coloring, input and output abstractions (so that you can easily unit-test your
-commands), validation, automatic help messages, and a lot more. It's really powerful.
+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, ...
Resources
---------

0 comments on commit 456d1b8

Please sign in to comment.