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/Command/ListCommand.php

73 lines
2.2 KiB
PHP
Raw Normal View History

2010-01-04 14:42:28 +00:00
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Console\Command;
2010-01-04 14:42:28 +00:00
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Output\Output;
use Symfony\Component\Console\Command\Command;
2010-01-04 14:42:28 +00:00
/**
* ListCommand displays the list of all available commands for the application.
2010-01-04 14:42:28 +00:00
*
* @author Fabien Potencier <fabien@symfony.com>
2010-01-04 14:42:28 +00:00
*/
class ListCommand extends Command
2010-01-04 14:42:28 +00:00
{
/**
2011-02-07 00:34:24 +00:00
* {@inheritdoc}
*/
protected function configure()
{
$this
->setDefinition(array(
new InputArgument('namespace', InputArgument::OPTIONAL, 'The namespace name'),
new InputOption('xml', null, InputOption::VALUE_NONE, 'To output help as XML'),
new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command list')
))
->setName('list')
->setDescription('Lists commands')
->setHelp(<<<EOF
The <info>list</info> command lists all commands:
2010-01-04 14:42:28 +00:00
<info>php app/console list</info>
2010-01-04 14:42:28 +00:00
You can also display the commands for a specific namespace:
2010-01-04 14:42:28 +00:00
<info>php app/console list test</info>
2010-01-04 14:42:28 +00:00
You can also output the information as XML by using the <comment>--xml</comment> option:
<info>php app/console list --xml</info>
It's also possible to get raw list of commands (useful for embedding command runner):
<info>php app/console list --raw</info>
2010-01-04 14:42:28 +00:00
EOF
);
2010-01-04 14:42:28 +00:00
}
/**
2011-02-07 00:34:24 +00:00
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
2010-01-04 14:42:28 +00:00
{
if ($input->getOption('xml')) {
$output->writeln($this->getApplication()->asXml($input->getArgument('namespace')), OutputInterface::OUTPUT_RAW);
} else {
$output->writeln($this->getApplication()->asText($input->getArgument('namespace'), $input->getOption('raw')));
}
2010-01-04 14:42:28 +00:00
}
}