有时候php需要在命令行下来完成一些操作,这时候就需要命令行控制台来协助你完成了。在项目目录上创建console\controllers\indexController.php文件,复制以下代码直接运行就能看到效果了。
<?php
/**
* Created by PhpStorm.
* User: ken
* Date: 2018/7/17
* Time: 20:08
*/
namespace console\controllers;
use yii\helpers\Console;
use yii\console\Controller;
class IndexController extends Controller{
public function actionIndex(){
//进度条效果
Console::startProgress(0, 100);
for ($n = 1; $n <= 100; $n++){
usleep(100); Console::updateProgress($n, 100);
}
Console::endProgress();
//字体颜色 只是在linux下有效果 windows出现一堆x
$hello = Console::ansiFormat("Hello",[Console::FG_YELLOW,Console::BG_BLUE]);//字体和背景颜色
$world = Console::ansiFormat("World",[Console::FG_GREEN]);
Console::output("{$hello} {$world}");
Console::output(Console::ansiFormat("normal",[Console::NORMAL]));//正常
Console::output(Console::ansiFormat("bold",[Console::BOLD]));//粗体
Console::output(Console::ansiFormat("italic",[Console::ITALIC]));//斜体
Console::output(Console::ansiFormat("underline",[Console::UNDERLINE]));//下划线
Console::output(Console::ansiFormat("negative",[Console::NEGATIVE]));
//用户输入
$name = Console::input("请输入你的名字:");
$formatName = Console::ansiFormat($name,[Console::FG_YELLOW]);
Console::output("你的名字是:{$formatName}");
//选择单选题
$sex = Console::select("性别:",[1=>'男',2=>'女']);
$formatSex = Console::ansiFormat($sex,[Console::FG_YELLOW]);
Console::output("你的性别是:{$formatSex}");
//对或错
if (Console::confirm("Are you sure?")){
Console::output("user input yes");
}else{
Console::output("user input no");
}
//必填 强行验证
Console::prompt("你的名字",['required'=>true,'error'=>'必须输入']);
/* 关于prompt方法主要是第二个参数进行限制,这是一个数组类型的参数,里面的值为
required 真假,是否必须填写
default 默认值
pattern 正则匹配
validator 自定义验证函数
error 错误信息*/
}
}

