简洁、功能全面的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 展示出来的。基本上涵盖了所有功能,可以直接测试运行

  • github https://github.com/inhere/php-console.git
  • gitee https://gitee.com/inhere/php-console.git
  • 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

    从v3升级到v4

  • 创建命令/组
  • 错误/异常捕获
  • 更多使用文档请点击跳转到 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请求路由库
  • toolkit/cli-utils
  • toolkit/pflag
  • toolkit/stdlib
  • toolkit/sys-utils
  • License