我已经创建了一个小命令行工具来帮助我启动网站。它使用Symfony2控制台来帮助创建命令并添加一些结构。我想弄清楚的是,如果有办法,我可以创建一个“空白”或默认命令,所以如果你没有输入命令它只是默认为这个。一个例子可能有助于解释:
“普通”控制台命令如下所示:
php launch site foo
我想让它做与上面完全相同的事情:
php launch foo
我唯一能想到的是对应用程序>运行进程进行短路,并检查“foo”是否在我自己的命令列表中,如果不是则强制控制台运行站点foo。 关于这一点的糟糕的事情是,如果你只是拼错了一个不同的命令,系统只会尝试运行作为一个网站,而不是一个错误消息,你会得到一个错误,说它无法启动该网站(这是一个错误,但错误的错误,对用户没有帮助)。
也许我在控制台文档中遗漏了一些东西,但有没有办法去做我在这里尝试的东西?
答案 0 :(得分: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();
}
它运作正常,它只是感觉有点meh,如果有人有它,我会接受其他建议。