jfabot/commandii

命令行工具

1.0.1 2017-09-04 05:35 UTC

This package is auto-updated.

Last update: 2022-10-22 22:47:30 UTC


README

Commandii是一个命令行工具库,可以

  • 以ANSI颜色显示和着色消息
  • 处理命令行参数和参数

已知问题

目前没有已知的问题。如果您发现了一个,请通过https://bitbucket.org/jfabot/commandii/issues/new告诉我

用法

命令行

要在您的代码中使用命令行组件,您需要包含 `use Commandii\CommandLine' 以检索使用的命令行命令和参数

$commandLine = new \Commandii\CommandLine;
$commandline->parseArgs($args)

这将返回一个包含所有值的数组,例如:application command --argument1=value --argument2 将返回

[0] => command
[argument1] => value
[argument2] => 1

如果参数没有值,它将自动填充为1。

状态消息

如果您想着色进程的进度,可以包含 use Commandii\StatusMessages StatusMessages组件包含以下函数

dot($type, $character, $verboseMessage)

显示进度点,默认 . 或给定的替代字符 $character

$statusMessages = new StatusMessages;
$statusMessages->dot(StatusMessages::TYPE_NOTICE, 'n', 'This is a notice');

success($spacer)

以绿色显示 SUCCESS 消息。默认情况下,前面没有空格。

$statusMessages = new StatusMessages;
$statusMessages->success();

warning($spacer)

以橙色显示 WARNING 消息。默认情况下,前面没有空格。

$statusMessages = new StatusMessages;
$statusMessages->warning();

error($spacer)

以红色显示 ERROR 消息。默认情况下,前面没有空格。

$statusMessages = new StatusMessages;
$statusMessages->error();

skipped($spacer)

以青色显示 SKIPPED 消息。默认情况下,前面没有空格。

$statusMessages = new StatusMessages;
$statusMessages->skipped();

warningText($message)

以橙色显示给定的消息。

$statusMessages = new StatusMessages;
$statusMessages->warningText('This is the message');

errorText($message)

以红色显示给定的消息。

$statusMessages = new StatusMessages;
$statusMessages->errorText('This is the message');

infoText($message, $type)

以给定的类型显示给定的消息。如果没有指定类型,文本为白色。

$statusMessages = new StatusMessages;
$statusMessages->infoText('This is the message', StatusMessages::TYPE_INFO);

message($message, $linefeed, $verboseOnly)

消息函数用于显示消息,并具有两个额外参数以控制行为。如果 linefeed 为 true,则在消息末尾添加换行符。第二个参数 verboseOnly 检查代码是否在详细模式下运行。如果是,则显示消息,否则将被丢弃。

您可以使用此函数显示类似的消息:开始进程

要这样做

$statusMessages = new StatusMessages;
$statusMessages->message('Starting process', false, false);

这很有用,当您需要在文本后显示进度条时。您可以使用此函数与点函数结合使用,以紧凑或详细格式向用户反馈。

newLine()

$statusMessages = new StatusMessages;
$statusMessages->newLine();

question($question, $timeout = 5)

显示可以回答为y或n的问题。超时时间为秒。

$statusMessages = new StatusMessages;
$statusMessages->question('This is the question', 3);

enableColors()

启用ANSI颜色的使用

$statusMessages = new StatusMessages;
$statusMessages->enableColors();

disableColors()

禁用ANSI颜色的使用

$statusMessages = new StatusMessages;
$statusMessages->disableColors();

setVerbosePointer($verbosePointer)

您可以设置一个要观察的变量。变量的值触发组件是否使用详细模式。

resetVerbosePointer()

清除详细变量

日志兼容输出

如果您需要从输出中删除颜色标签,可以使用函数 AnsiColors::colorize($text, $linebreak, $flatten) 将 flatten 设置为 true,将删除颜色标签并返回平面输出。