Skip to content

about console command

Inhere edited this page May 29, 2022 · 6 revisions

控制台命令说明

通常我们在Linux终端执行一个命令都包含以下部分: 命令名,选项,参数

简单的如 ls, grep 等,是个独立的小命令,可以有选项参数

CMD [--OPTIONS] [ARGUMENTS]

复杂一些的可以有子命令,且子命令可以有多级,如 git, composer

CMD SUB [--OPTIONS] [ARGUMENTS]

php-console

php-console 包即是一个可以方便构建复杂且多级的控制台应用库。

如果你只想构建一个简单的命令可以使用我的 php-toolkit/pflag 库, php-console 是基于它构建复杂应用的。

执行命令始终遵循如下格式:

ENTRY CMD [--OPTIONS] [ARGUMENTS]
# 多级子命令
ENTRY CMD [--OPTIONS] SUB [--OPTIONS] [ARGUMENTS]
  • ENTRY 是应用入口文件 eg: ./bin/app.php
    • 加了 shebang #!/usr/bin/env php 后可以省略 php 后缀
  • CMD 是注册到console应用的命令名称,是必须的
    • 就像web应用的路由path一样,通过它确认要执行哪个命令
  • [--OPTIONS] 是前面命令的选项设置,以 - 开头,它是可选的根据命令的设置而不同
  • [ARGUMENTS] 则是解析完选项之后留下的参数,同样是可选的
    • 参数通常是根据位置获取值的,例如 [tom john] -> Arg(0)=tom
    • 在console里可以给参数命名,内部会自动按位置绑定到对应名称

命令选项和参数

命令行选项

  • 选项以 - 或者 -- 开头的,且首字符必须是字母
  • -- 开头的为长选项. eg: --long --long value
  • - 开头的为短选项 -s -a value
  • 支持定义数组选项
    • eg: --tag php --tag go 将会得到 $tag = [php, go]

命令行参数

  • 不能满足选项的都认作参数
  • 支持绑定命名参数
  • 支持定义数组参数

独立命令和命令组

console 包支持使用 controller 形式简单快速的组织一组命令。也支持使用 command 形式构建每个独立命令。

使用console 包可以快速方便的编写命令

  • 可以直接使用注释tag,方便快速的定义命令的选项和参数
  • 也可以通过对象化的方式配置一个命令
  • 自动生成漂亮的帮助面板信息
  • 支持设置选项或参数的值类型,会自动格式化为对应类型

编写独立命令

如何在使用console包独立命令类,请查看 创建命令

TIP: 创建好命令后需要注册到Application, 请继续看 注册命令 章节

编写命令组

更多使用和编写说明请查看 创建命令组

TIP: 创建好命令后需要注册到Application, 请继续看 注册命令 章节

Clone this wiki locally
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy