Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork5.3k
Updated single command How to#6876
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Changes fromall commits
File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -6,68 +6,51 @@ Building a single Command Application | ||
| When building a command line tool, you may not need to provide several commands. | ||
| In such case, having to pass the command name each time is tedious. Fortunately, | ||
| it is possible to remove this need by declaring a single command application:: | ||
| #!/usr/bin/env php | ||
| <?php | ||
| require __DIR__.'/vendor/autoload.php'; | ||
| use Symfony\Component\Console\Application; | ||
| use Symfony\Component\Console\Input\InputArgument; | ||
| use Symfony\Component\Console\Input\InputInterface; | ||
| use Symfony\Component\Console\Input\InputOption; | ||
| use Symfony\Component\Console\Output\OutputInterface; | ||
| (new Application('echo', '1.0.0')) | ||
| ->register('echo') | ||
| ->addArgument('foo', InputArgument::OPTIONAL, 'The directory') | ||
| ->addOption('bar', null, InputOption::VALUE_REQUIRED) | ||
| ->setCode(function(InputInterface $input, OutputInterface $output) { | ||
| // output arguments and options | ||
| }) | ||
| ->getApplication() | ||
| ->setDefaultCommand('echo', true) // Single command application | ||
| ->run(); | ||
| The method :method:`Symfony\\Component\\Console\\Application::setDefaultCommand` | ||
| accepts a boolean as second parameter. If true, the command ``echo`` will then | ||
Member There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. Should we elaborate a bit on this second argument? I guess that it may sound strange that you have to pass this option at all (one might expect from the name of the Member There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. 👍 for explaining what is different when passing it ContributorAuthor There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. I'm not sure what you expect as an explanation, explain more is something like explain the code produced. This sounds like PHPDoc for getters/setters. To me, in this example, the only thing to know is that passing a second parameter to If someone really want to know how we do it, I'm pretty sure he/she review the code produced (as I did ^^) ... what do you think@lyrixx ? What is really relevant to understand in your contribution ? | ||
| always be used, without having to pass its name. | ||
| Of course, you can still register a command as usual:: | ||
Contributor There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. typo: courses ContributorAuthor There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. Are you sure? :) Contributor There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. My bad :) | ||
| #!/usr/bin/env php | ||
Member There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. we usually use four spaces to indent code blocks ContributorAuthor There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. Ok, I will update it :) | ||
| <?php | ||
| require __DIR__.'/vendor/autoload.php'; | ||
| use Symfony\Component\Console\Application; | ||
| use Symfony\Component\Console\Input\InputArgument; | ||
| use Symfony\Component\Console\Input\InputInterface; | ||
| use Symfony\Component\Console\Input\InputOption; | ||
| use Symfony\Component\Console\Output\OutputInterface; | ||
| use Acme\Command\DefaultCommand; | ||
| $application = new Application('echo', '1.0.0'); | ||
| $command = new DefaultCommand(); | ||
Member There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. If you do want a blank line here, you need to add two spaces into (seehttp://pr-6876-6qmocelev2lwe.eu.platform.sh/components/console/changing_default_command.html for the current result) ContributorAuthor There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. Also, how do you find the correct link for the generated documentation ? Member There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. Just below, on the PR checks section you can click on "details" of the platformsh check | ||
| $application->add($command); | ||
| $application->setDefaultCommand($command->getName(), true); | ||
| $application->run(); | ||