0

我创建了一个小命令行工具来帮助我启动站点。它使用 Symfony2 控制台来帮助创建命令并添加一些结构。我想弄清楚的是,如果有办法,我可以创建一个“空白”或默认命令,所以如果你不输入命令,它只是默认为这个。一个例子可能有助于解释:

“正常”的控制台命令如下所示:

php launch site foo

我想让它做与上面完全相同的事情:

php launch foo

我唯一能想到的就是短路应用程序->运行进程并检查“foo”是否在我自己的命令列表中,如果不是,则强制控制台运行站点 foo。糟糕的是,如果您只是输入了不同的命令,系统只会尝试作为站点运行,而不是错误消息,您会收到一条错误消息,说明它无法启动该站点(这是错误,但错误的错误对用户没有帮助)。

也许我错过了控制台文档中的某些内容,但是有没有办法做我在这里尝试的事情?

4

1 回答 1

0

所以我最终做的只是尝试自己的匹配,如果我能找到命令,然后我正常运行应用程序,如果没有,我尝试启动该站点:

    if (!array_key_exists($argv[1], $list))
    {
        $cmd = $this->application->find('launch');
        $args = array(
            'command' => 'launch',
            'alias' => $argv[1]
        );

        $input = new ArrayInput($args);
        $output = new ConsoleOutput();
        $cmd->run($input, $output);
    }
    else
    {
        $this->application->run();
    }

它工作正常,只是感觉有点糟糕,如果有人有其他建议,我愿意接受。

于 2013-08-20T11:42:53.150 回答