inhere / console
php console library, provide console argument parse, console controller/command run, color style, user interactive, information show.
Installs: 6 823
Dependents: 12
Suggesters: 34
Security: 0
Stars: 346
Watchers: 17
Forks: 48
Open Issues: 2
Requires
- php: >8.0.1
- toolkit/cli-utils: ~2.0
- toolkit/fsutil: ~2.0
- toolkit/pflag: ~2.0
- toolkit/stdlib: ^2.0
- toolkit/sys-utils: ~2.0
Requires (Dev)
- phpunit/phpunit: ^9.1
Suggests
- padraic/phar-updater: A thing to make PHAR self-updating easy and secure.
- symfony/process: php process operation
- text/template: Single-Class string template engine for PHP5/7 supporting if/loops/filters
- dev-master
- v4.1.6
- v4.1.5
- v4.1.4
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v4.0.0beta2
- v4.0.0beta1
- 3.x-dev
- v3.1.21
- v3.1.20
- v3.1.19
- v3.1.18
- v3.1.17
- v3.1.16
- v3.1.15
- v3.1.14
- v3.1.13
- v3.1.12
- v3.1.11
- v3.1.10
- v3.1.9
- v3.1.8
- v3.1.7
- v3.1.6
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.2
- v3.0.1
- v3.0.0
- 2.x-dev
- v2.4.3
- v2.4.2
- v2.4.1
- v2.4.0
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.5
- v2.2.4
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.9
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- 1.x-dev
- v1.2.1
- v1.2.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.0.1
- v0.6.2
- v0.6.1
- v0.5.1
- dev-dependabot/composer/phpunit/phpunit-tw-9.1or-tw-10.0
- dev-fix-29
This package is auto-updated.
Last update: 2024-12-05 10:47:49 UTC
README
简洁、功能全面的php命令行应用库。提供控制台参数解析, 命令运行,颜色风格输出, 用户信息交互, 特殊格式信息显示。
NOTICE: Current version v4.1+, require PHP 8.0+
命令行预览
功能概览
使用方便简单。可以方便的整合到任何已有项目中。
- 命令行应用, 命令行的
controller
,command
解析运行 - 支持给命令设置别名,一个命令可以有多个别名。
- 支持命令的显示/隐藏,启用/禁用
- 命令行下的 输入
input
, 输出output
, Flag解析管理、使用 - 功能全面的命令行的选项、参数解析
- 命名参数,数组参数
- 选项绑定 短选项
-s
,长选项--long
- NEW v4 支持定义数据类型(
bool,int,string,array
),解析后会自动格式化输入值
- 命令方法注释自动解析为帮助信息
- 默认提取
@usage
@arguments
@options
@example
等信息 - NEW v4 版本支持从注释定义选项参数的数据类型
- 默认提取
- 支持注册事件监听,错误处理等
更多特性
- 支持输出多种颜色风格的消息文本(
info
,comment
,success
,warning
,danger
,error
... ) - 常用的特殊格式信息显示(
section
,panel
,padding
,helpPanel
,table
,tree
,title
,list
,multiList
) - 丰富的动态信息显示(
pending/loading
,pointing
,spinner
,counterTxt
,dynamicText
,progressTxt
,progressBar
) - 常用的用户信息交互支持(
select
,multiSelect
,confirm
,ask/question
,askPassword/askHiddenInput
) - 支持类似
symfony/console
的预定义参数定义(按位置赋予参数值, 需要严格限制参数选项时推荐使用) - 颜色输出是
windows
linux
mac
兼容的,不支持颜色的环境会自动去除相关CODE - 快速的为当前应用生成
bash/zsh
环境下的自动补全脚本
内置工具
- 内置Phar打包工具类,可以方便的将应用打包成
phar
文件。方便分发和使用- 运行示例中的命令
php examples/app phar:pack
,会将此console库打包成一个app.phar
- 运行示例中的命令
- 内置了命令行下的文件下载工具类,带有进度条显示
- 命令行的php代码高亮支持(来自于
jakub-onderka/php-console-highlighter
并做了一些调整) - 简单的Terminal屏幕、光标控制操作类
- 简单的进程操作使用类(fork,run,stop,wait ... 等)
所有的特性,功能:
都可以运行 examples/
中的示例代码 php examples/app
展示出来的。基本上涵盖了所有功能,可以直接测试运行
项目地址
快速安装
- Requirement PHP 8.0+
composer require inhere/console
快速开始
// file: examples/app use Inhere\Console\IO\Input; use Inhere\Console\IO\Output; $meta = [ 'name' => 'My Console App', 'version' => '1.0.2', ]; // 通常无需传入 $input $output ,会自动创建 // $app = new \Inhere\Console\Application($meta, $input, $output); $app = new \Inhere\Console\Application($meta); // 注册命令 $app->command(DemoCommand::class); // 注册命令组 $app->addGroup(MyController::class); // ... ... // run $app->run();
运行示例应用: php examples/app
文档列表
更多使用文档请点击跳转到WIKI查看
单元测试
phpunit // 没有xdebug时输出覆盖率 phpdbg -dauto_globals_jit=Off -qrr /usr/local/bin/phpunit --coverage-text
开发调试
你可以通过环境变量 CONSOLE_DEBUG=level
, 全局选项 --debug level
设置debug级别
# by ENV $ CONSOLE_DEBUG=4 php examples/app $ CONSOLE_DEBUG=5 php examples/app # by global options $ php examples/app --debug 4
使用console的项目
看看这些使用了 https://github.com/inhere/php-console 的项目:
- kite PHP编写的,方便本地开发和使用的个人CLI工具应用
- More, please see github used by
我的其他项目
- inhere/php-validate 一个简洁小巧且功能完善的php验证库
- inhere/sroute 轻量且快速的HTTP请求路由库