sitnikovik/clipher

CLI工具,用颜色、加粗、加载条等功能美化您的脚本

v1.0.0 2024-08-24 07:35 UTC

This package is auto-updated.

Last update: 2024-09-24 07:52:40 UTC


README

使用颜色、加粗、加载条等功能美化您的CLI脚本

开始使用

只需创建一个Sitnikovik\Console\Console对象,然后继续即可

$console = new \Sitnikovik\Console\Console();

输入

确认

\Sitnikovik\Console\Console::confirm(string $question, bool $yesOnDefault = false): void

使用y/n让用户批准或拒绝某些过程

提示

\Sitnikovik\Console\Console::prompt(string $question): string

询问用户输入继续程序所需的答案

输出

打印行

\Sitnikovik\Console\Console::println(string $text): void

打印带换行符的文本控制台输出

分隔

\Sitnikovik\Console\Console::separate(int $width = 0): void

打印带指定宽度的单独条,如果宽度为0则拉伸

退出

\Sitnikovik\Console\Console::quit(string $message = '')

0代码退出程序,如果消息文本不为空则打印消息

恐慌

\Sitnikovik\Console\Console::panic(string $message = '', int $code = 1)

以提供的代码退出程序,表示程序失败,如果消息文本不为空则以红色颜色打印消息

颜色

如果您想切换颜色样式,您必须提供Sitnikovik\Console\Style\StyleInterface类以对文本和背景布局进行着色。

// set colors
$console->setTextStyle(new Sitnikovik\Console\Style\Text\Bold());
$console->setBackgroundStyle(new Sitnikovik\Console\Style\Background());

// or via constructor
$console = new Console(new Sitnikovik\Console\Style\Text\Regular(), new Sitnikovik\Console\Style\Background());

自定义样式颜色

无论如何,您都可以创建扩展自Sitnikovik\Console\Style\AbstractStyle或实现了Sitnikovik\Console\Style\StyleInterface的类的自定义类,并修改您喜欢的颜色。

着色文本

Sitnikovik\Console\Style\AbstractStyleSitnikovik\Console\Style\StyleInterface实现了至少8种着色文本的方法。类调用接口方法

  • black()
  • red()
  • green()
  • yellow()
  • blue()
  • purple()
  • cyan()
  • white()
$text = $console->red('some text'); // colorize text
// or
$text = $console->bgRed('some text'); // set background to text

它们返回着色到调用颜色的文本。

进度条

如果您需要可视化某些进程的进度,可以使用Sitnikovik\Console\Progressbar\Progressbar

// Create the bar like that
$maxValue = 100;
$progressbar = $console::createProgressbar($maxValue);
// or 
$progressbar = Sitnikovik\Console\Progressbar\Progressbar($maxValue);

// Advancing
for ($current = 0; $current < $maxValue; $current++) {
    $progressbar->advance(); // increment with 1 point of the max value
}

// Or advance it manually
$progressbar->advance(40); // or another value