是否有完整的PHP命令行解析器?

Bla*_*oat 7 php command-line parsing command-line-interface

我正在寻找类似于Thor的命令解析库,但对于PHP.

更具体地说,我想要一些可以......

  • 处理子命令输入,例如 git remote add <url>
  • 将选项与其值相关联,例如my-command --some-option='value'创建一个键值对array( 'some-option' => 'value' )
  • 从传递给它的配置生成使用/帮助信息
  • processes -short和--long选项
  • 图书馆正在维护中
  • 必须是PHP(否则,我会使用Thor)

到目前为止,我所看到的解决方案都没有令人满意.

最接近标记的是PEAR的Console_Getargs,尽管没有维护.

pear命令使用Console_Getopt,但它们执行大量手动处理以实现前三个要求中的功能.

PHP getopt()无法处理子命令,似乎没有任何其他内置方法可以使用这个功能.

是否有符合我可能错过的标准的PHP库?

Ing*_*gve 7

GetOptionKit解析参数,处理子命令,自动生成帮助,并有一个很好的API.它需要PHP 5.4+.它托管在GitHub上,似乎是活跃的维护.

对于布尔选项:

-d   => ["debug" => true]
--debug => ["debug" => true]
Run Code Online (Sandbox Code Playgroud)

对于增量选项:

-v => [ "verbose" => 1 ]
-vv => [ "verbose" => 2 ]
-vvv => [ "verbose" => 3 ]
Run Code Online (Sandbox Code Playgroud)

对于多个值选项:

--foo=bar   => [ "foo" => "bar" ]
--foo=bar --foo=zoo => [ "foo" => ["bar", "zoo"] ]
Run Code Online (Sandbox Code Playgroud)

还有一个类型约束选项可帮助您获得如下选项值:

--output=file  => [ "output" => SplFileInfo Object ]
Run Code Online (Sandbox Code Playgroud)