diff options
Diffstat (limited to 'vendor/symfony/console/Command/HelpCommand.php')
| -rw-r--r-- | vendor/symfony/console/Command/HelpCommand.php | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/vendor/symfony/console/Command/HelpCommand.php b/vendor/symfony/console/Command/HelpCommand.php new file mode 100644 index 0000000..a2a72da --- /dev/null +++ b/vendor/symfony/console/Command/HelpCommand.php | |||
| @@ -0,0 +1,76 @@ | |||
| 1 | <?php | ||
| 2 | |||
| 3 | /* | ||
| 4 | * This file is part of the Symfony package. | ||
| 5 | * | ||
| 6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
| 7 | * | ||
| 8 | * For the full copyright and license information, please view the LICENSE | ||
| 9 | * file that was distributed with this source code. | ||
| 10 | */ | ||
| 11 | |||
| 12 | namespace Symfony\Component\Console\Command; | ||
| 13 | |||
| 14 | use Symfony\Component\Console\Descriptor\ApplicationDescription; | ||
| 15 | use Symfony\Component\Console\Helper\DescriptorHelper; | ||
| 16 | use Symfony\Component\Console\Input\InputArgument; | ||
| 17 | use Symfony\Component\Console\Input\InputInterface; | ||
| 18 | use Symfony\Component\Console\Input\InputOption; | ||
| 19 | use Symfony\Component\Console\Output\OutputInterface; | ||
| 20 | |||
| 21 | /** | ||
| 22 | * HelpCommand displays the help for a given command. | ||
| 23 | * | ||
| 24 | * @author Fabien Potencier <fabien@symfony.com> | ||
| 25 | */ | ||
| 26 | class HelpCommand extends Command | ||
| 27 | { | ||
| 28 | private Command $command; | ||
| 29 | |||
| 30 | protected function configure(): void | ||
| 31 | { | ||
| 32 | $this->ignoreValidationErrors(); | ||
| 33 | |||
| 34 | $this | ||
| 35 | ->setName('help') | ||
| 36 | ->setDefinition([ | ||
| 37 | new InputArgument('command_name', InputArgument::OPTIONAL, 'The command name', 'help', fn () => array_keys((new ApplicationDescription($this->getApplication()))->getCommands())), | ||
| 38 | new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt', fn () => (new DescriptorHelper())->getFormats()), | ||
| 39 | new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command help'), | ||
| 40 | ]) | ||
| 41 | ->setDescription('Display help for a command') | ||
| 42 | ->setHelp(<<<'EOF' | ||
| 43 | The <info>%command.name%</info> command displays help for a given command: | ||
| 44 | |||
| 45 | <info>%command.full_name% list</info> | ||
| 46 | |||
| 47 | You can also output the help in other formats by using the <comment>--format</comment> option: | ||
| 48 | |||
| 49 | <info>%command.full_name% --format=xml list</info> | ||
| 50 | |||
| 51 | To display the list of available commands, please use the <info>list</info> command. | ||
| 52 | EOF | ||
| 53 | ) | ||
| 54 | ; | ||
| 55 | } | ||
| 56 | |||
| 57 | public function setCommand(Command $command): void | ||
| 58 | { | ||
| 59 | $this->command = $command; | ||
| 60 | } | ||
| 61 | |||
| 62 | protected function execute(InputInterface $input, OutputInterface $output): int | ||
| 63 | { | ||
| 64 | $this->command ??= $this->getApplication()->find($input->getArgument('command_name')); | ||
| 65 | |||
| 66 | $helper = new DescriptorHelper(); | ||
| 67 | $helper->describe($output, $this->command, [ | ||
| 68 | 'format' => $input->getOption('format'), | ||
| 69 | 'raw_text' => $input->getOption('raw'), | ||
| 70 | ]); | ||
| 71 | |||
| 72 | unset($this->command); | ||
| 73 | |||
| 74 | return 0; | ||
| 75 | } | ||
| 76 | } | ||
