-
Notifications
You must be signed in to change notification settings - Fork 48
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-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 后缀
- 加了 shebang
-
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]
- eg:
- 不能满足选项的都认作参数
- 支持绑定命名参数
- 支持定义数组参数
console 包支持使用 controller 形式简单快速的组织一组命令。也支持使用 command 形式构建每个独立命令。
使用console 包可以快速方便的编写命令
- 可以直接使用注释tag,方便快速的定义命令的选项和参数
- 也可以通过对象化的方式配置一个命令
- 自动生成漂亮的帮助面板信息
- 支持设置选项或参数的值类型,会自动格式化为对应类型
如何在使用console包独立命令类,请查看 创建命令
TIP: 创建好命令后需要注册到Application, 请继续看 注册命令 章节
更多使用和编写说明请查看 创建命令组
TIP: 创建好命令后需要注册到Application, 请继续看 注册命令 章节
我的其他PHP项目
- inhere/kite 方便本地开发和使用的个人CLI工具应用
- php-toolkit/pflag PHP编写的,通用的命令行标志(选项和参数)解析库
- phppkg/easytpl 使用简单且快速的 PHP 模板引擎
- inhere/php-validate 一个简洁小巧且功能完善的php验证库
- inhere/sroute 轻量且快速的HTTP请求路由库