改变默认的命令

3.4 版本
维护中的版本

Console组件在没有提供命令名字时,始终使用ListCommand。为了改变这个默认命令,你只需传入命令的名字到setDefaultCommand方法中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
namespace Acme\Console\Command;
 
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
 
class HelloWorldCommand extends Command
{
    protected function configure()
    {
        $this->setName('hello:world')
            ->setDescription('Outputs \'Hello World\'');
    }
 
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln('Hello World');
    }
}

执行application程序,改变默认命令:

1
2
3
4
5
6
7
8
9
10
// application.php
 
use Acme\Console\Command\HelloWorldCommand;
use Symfony\Component\Console\Application;
 
$command = new HelloWorldCommand();
$application = new Application();
$application->add($command);
$application->setDefaultCommand($command->getName());
$application->run();

运行以下代码,测试默认的console命令:

1
$  php application.php

这时会输出如下结果到控制台:

1
Hello World

这个功能有一个局限:你不能把它同任何命令参数(Command arguments)一起使用。

本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。

登录symfonychina 发表评论或留下问题(我们会尽量回复)