[minicli/minicli]极简的命令行框架

2022-02-15 奥古斯宏
一个PHP的极简的无依赖的命令行类库.可以非常方便的结构化的程序逻辑和漂亮的输出.

minicli/minicli是一个极简的没有其他依赖的命令行类库,可以非常方便的写出一套基础功能完整的命令行应用.并且可以定制主题.

它本身没有其他依赖的只是一个类库,一般的我们需要自己建立相关文件,但是它也提供了一个简单却完整的框架,小编推荐使用这样的安装方式:

  composer create-project --prefer-dist minicli/application myapp

这样创建出的项目:

  • 简单却完整
  • 自动加载依赖
  • 可以基于命名空间引用类库
  • 很容易的创建多个应用和命令

创建出的项目包含几个默认的命令,我们进入项目目录后直接运行:

php minicli

会打印出当前项目中可用的命令,像这样:

项目初始化了一个table命令,执行之后可以打印出一个简单的表格:

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

它还提供了一个demo项目,可以下载下来测试:

https://github.com/minicli/demos

下面是小编带来的演示截图:

  • 支持的命令行样式:

标准的内容输出颜色和背景色:

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

自定义的颜色和背景色:

带下划线或加粗的样式,部分终端可能不支持:

  • 表格样式

标准的表格输出:

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

自定义表格样式:

  • 定制主题
$app = new App([
        'debug' => false,
        'app_path' => __DIR__ . '/app/Command',
        'theme' => 'App\CustomTheme\Theme\Blue'
]);

主题文件像这样:

<?php


namespace App\CustomTheme\Theme;


use Minicli\Output\CLIColors;
use Minicli\Output\Theme\DefaultTheme;


/**
 * Custom Theme Example
 * Overwrite only the colors you need, the other styles will be picked up from DefaultTheme
 * Style format: `style_name => [ COLOR_FOREGROUND, COLOR_BACKGROUND ]`
 */
class BlueTheme extends DefaultTheme
{
    public function getThemeColors(): array
    {
        return [
            'default' => [ CLIColors::$FG_BLUE ],
            'alt'     => [ CLIColors::$FG_WHITE, CLIColors::$BG_BLUE ],
            'info'    => [ CLIColors::$FG_CYAN ],
            'info_alt' => [ CLIColors::$FG_BLACK, CLIColors::$BG_BLUE ]
        ];
    }
}


项目官网:https://docs.minicli.dev/en/latest/

评论
点击登录