使用Console命令、快捷方式和内建命令

3.4 版本
维护中的版本

除了在命令中指定选项之外,Console组件还有一些内建选项,以及一些内建命令。

下面这些例子,均假设你已添加一个application.php文件来运行cli:

1
2
3
4
5
6
7
8
9
#!/usr/bin/env php
<?php
// application.php
 
use Symfony\Component\Console\Application;
 
$application = new Application();
// ...
$application->run();

内建命令 

使用内建命令list,可以输出所有已注册的命令及其全部标准选项(options):

1
$  php application.php list

你也可得到相同输出却不运行任何命令:

1
$  php application.php

help命令列出特定命令的帮助信息。比如,要想得知list命令的帮助细节:

1
$  php application.php help list

运行help却不指定任何命令,将罗列出全局选项(global options):

1
$  php application.php help

全局选项 

对于任何命令都可以通过--help选项得到帮助信息。要得到list命令的帮助信息:

1
2
$  php application.php list --help
$  php application.php list -h

你也可以(用以下选项)抑制输出:

1
2
$  php application.php list --quiet
$  php application.php list -q

你还可以得到更多冗余信息(verbose messages)(如果被该命令所支持的话):

1
2
$  php application.php list --verbose
$  php application.php list -v

为了输出更多的冗余信息你可以使用下列选项:

1
2
$  php application.php list -vv
$  php application.php list -vvv

如果你在程序中设置了一个可选参数,用于名字和版本:

1
$application = new Application('Acme Console Application', '1.2');

那么你可以使用:

1
2
$  php application.php list --version
$  php application.php list -V

来得到如下信息:

1
Acme Console Application version 1.2

如果你不提供console name,那么它将输出:

1
console tool

你可以强制开启ANSI颜色输出:

1
$  php application.php list --ansi

也可以关掉它:

1
$  php application.php list --no-ansi

通过下面选项,你可以在命令中抑制任何提问式的互动:

1
2
$  php application.php list --no-interaction
$  php application.php list -n

快捷语法 

你不必打出完整的命令名称。只需键入清楚明白的快捷名称即可启动一个命令。所以,如果没有与之冲突的命令,你可以像下面这样使用help

1
$  php application.php h

如果你在命令中有使用:来进行namespace,那么你只需为每一部分键入快捷无冲突文本。如果你创建了一个demo:greet命令,就像链接已失效的Console组件所展示的那样,那么你可以这样运行它:

1
$  php application.php d:g Fabien

若你键入的快捷命令文本含有歧义(比如,该文本匹配到一个以上的命令),就不会有命令被执行,但会显示出一些建议,告之可能的命令以方便你选择。

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

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