jfabot / commandii
Requires
- php: >= 5.6.0
Requires (Dev)
- fuegas/vanilla-psr: 1.*
- phpunit/phpunit: ^4.8
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,将删除颜色标签并返回平面输出。