[中文] / English #简介
iry/Cli 可以简单实现 输出、输入、倒计时、绘制进度条、绘制表格、移动光标、清除屏幕、确认对话 等功能
可以轻松实现类似表单等输入功能:
如(input: stdin, 开关:confirm, select:select,radio:select单选模式, checkbox:select多选模式)
composer require iry/cli
use ir\cli\Cli;
Cli::disableStyle(true|false)//是否禁用样式 默认false;
Cli::charset('gbk')//'utf-8', 'gbk', 'gb2312'//默认utf-8
stdin($msg,$validator,$processor);//等待并获取用户输入的数据
参数 | 类型 | 说明 |
---|---|---|
$msg | string | 消息:等待用户输入前,输一条提示消息消息 |
$validator | false/callable | 验证器:用于验证用户输入的信息是否有效的方法 |
$processor | false/callable | 处理器:对用户输入的数据进行处理的方法 |
use ir\cli\Cli;
$numeric = Cli::stdin('请输入');//等待并获取用户输入的数据
$numeric = Cli::stdin('请输入数字',function($v){return preg_match('/^[0-9]+$/',$v);},'trim');
$numeric = Cli::stdin('请输入数字',function($v){return preg_match('/^[0-9]+$/',$v);},'trim');
打印到屏幕 支持彩色文字
参数 | 说明 | |
---|---|---|
$msg | string/array | 消息:等待用户输入前,输一条提示消息消息 |
$styleType | string/array | error,info,comment,question,highlight,warning,[前景色,背景色] |
$msg数组模式可以设置复杂的彩色文字如下示例 |
Cli::output('这是一个测试','success')
Cli::output('这是一个测试','error')
Cli::output('这是一个测试',['purple','yellow'])
Cli::output([
'这是',
['一个','error'],//使用error样式
['测试','yellow'],//使用info样式
//string || ['$msg','$styleType']
]);
这是一个测试:
这是一个测试:
这是一个测试:
这是一个测试
这是一个测试:
这是一个测试:
这是一个测试
confirm($msg,$validator,$processor);//Cli中 确认对话
参数 | 说明 | |
---|---|---|
$msg | string | 消息:等待用户输入前,输一条提示消息消息 |
return | bool | true/false |
$msg
use ir\cli\Cli;
$confirm = Cli::confirm('你确认要删除吗?');
//效果如下
//你确认要删除吗?[y/n] _
select($list,$colQty,$msg,$mul);
参数 | 说明 | ||
---|---|---|---|
$list | array | 必须 | 可选清单 |
$colQty | int | 可选 | 列数,展示可选清单时,展示几列。默认:1 |
$msg | string | 可选 | 默认:请输入 |
$mul | bool | 可选 | 是否允许多选,默认:false |
cursorMove(方位,移动量) 方位:l:left r:right u:up, d:down
use ir\cli\Cli;
$confirm = Cli::cursorMove('u',3); //光标上移三行
$confirm = Cli::cursorMove('l',4); //光标左移4个字符
cursorPosition(x,y) y行x列
use ir\cli\Cli;
$confirm = Cli::cursorPosition(3,5);//光标定位到5行第三个字符后面
clear();//清除屏幕
wait(int $s 秒,string $msg 消息);
progressBar(int $total 总量,int $current 当前量, string $msg 文本信息)