没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\helpers\BaseConsole

继承yii\helpers\BaseConsole
子类yii\helpers\Console
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/helpers/BaseConsole.php

BaseConsole 为 yii\helpers\Console 提供了具体的实现方法。

不要使用 BaseConsole 类。使用 yii\helpers\Console 类代替。

公共方法

隐藏继承的方法

方法描述被定义在
ansiFormat() 将返回一个使用给定 ANSI 样式格式化的字符串。 yii\helpers\BaseConsole
ansiFormatCode() 返回 ANSI 格式代码。 yii\helpers\BaseConsole
ansiStrlen() 返回没有 ANSI 颜色代码的字符串长度。 yii\helpers\BaseConsole
ansiToHtml() 将 ANSI 格式的字符串转换为 HTML。 yii\helpers\BaseConsole
beginAnsiFormat() 输出一种 ANSI 格式代码,它影响以后打印的任何文本的格式。 yii\helpers\BaseConsole
clearLine() 清除行,光标当前是通过发送 ANSI 控制代码 EL 带有参数 2 到终端。 不会改变光标位置。 yii\helpers\BaseConsole
clearLineAfterCursor() 通过将参数为 0 的 ANSI 控制代码 EL 发送到终端,将文本从光标位置清除到行尾。 不会改变光标位置。 yii\helpers\BaseConsole
clearLineBeforeCursor() 通过向终端发送带有变量 1 的 ANSI 控制码 EL,将文本从光标位置清除到行的开始位置。 不会改变光标位置。 yii\helpers\BaseConsole
clearScreen() 通过发送参数带有 2 的 ANSI 控制代码 ED 到终端来清除整个屏幕内容。 不会改变光标位置。 Note: ANSI.SYS 能够实现在 windows 中将坐标位置重置到屏幕左上角。 yii\helpers\BaseConsole
clearScreenAfterCursor() 通过发送参数带有 0 的 ANSI 控制代码 ED 发送到终端,将文本从光标清除到屏幕末端。 不会改变光标位置。 yii\helpers\BaseConsole
clearScreenBeforeCursor() 通过发送参数带有 1 的 ANSI 控制代码 ED 发送到终端,将文本从光标处清除到屏幕的开头。 不会改变光标位置。 yii\helpers\BaseConsole
confirm() 请用户输入 y 或 n 进行确认。 yii\helpers\BaseConsole
endAnsiFormat() 重置之前方法 beginAnsiFormat() 设置的任何 ANSI 格式。 在此之后的任何输出都将具有默认的文本格式。 这等于调用。 yii\helpers\BaseConsole
endProgress() 通过 startProgress() 结束已启动的进度条。 yii\helpers\BaseConsole
error() 打印文本到 STDERR 并附加回车信息(PHP_EOL)。 yii\helpers\BaseConsole
errorSummary() 生成验证错误的摘要。 yii\helpers\BaseConsole
escape() 当字符串被解析时如果包含转义符 % 则它们不会通过 renderColoredString() 解释为颜色代码。 yii\helpers\BaseConsole
getScreenSize() 返回终端屏幕大小。 yii\helpers\BaseConsole
hideCursor() 通过向终端发送 ANSI DECTCEM 代码 ?25l 来隐藏光标。 使用 showCursor() 将它带回来。 应用程序退出时不要忘记显示光标。退出后光标可能会隐藏在终端中。 yii\helpers\BaseConsole
input() 请求用户输入。当用户键入回车时结束(PHP_EOL)。 可选,它还提供了一个提示。 yii\helpers\BaseConsole
isRunningOnWindows() 如果控制台在 windows 上运行,则返回 true。 yii\helpers\BaseConsole
markdownToAnsi() 通过应用一些 ANSI 格式,将 Markdown 转换为在控制台环境中更好的可读性。 yii\helpers\BaseConsole
moveCursorBackward() 通过向终端发送 ANSI 控制代码 CUB,将终端光标向后移动。 如果光标已经在屏幕边缘,则不会有任何效果。 yii\helpers\BaseConsole
moveCursorDown() 通过向终端发送 ANSI 控制代码 CUD 将终端光标向下移动。 如果光标已经在屏幕边缘,则不会有任何效果。 yii\helpers\BaseConsole
moveCursorForward() 通过向终端发送 ANSI 控制代码 CUF,将终端光标向前移动。 如果光标已经在屏幕边缘,则不会有任何效果。 yii\helpers\BaseConsole
moveCursorNextLine() 通过向终端发送 ANSI 控制代码 CNL,将终端光标移动到下一行的开头。 yii\helpers\BaseConsole
moveCursorPrevLine() 通过向终端发送 ANSI 控制代码 CPL,将终端光标移动到前一行的开头。 yii\helpers\BaseConsole
moveCursorTo() 通过发送 ANSI 控制码 CUP 或 CHA 到终端,将光标移动到列和行给定的绝对位置。 yii\helpers\BaseConsole
moveCursorUp() 通过向终端发送 ANSI 控制代码 CUU 将终端光标向上移动。 如果光标已经在屏幕边缘,则不会有任何效果。 yii\helpers\BaseConsole
output() 打印带有回车信息的 STDOUT 文本(PHP_EOL)。 yii\helpers\BaseConsole
prompt() 提示用户输入并验证。 yii\helpers\BaseConsole
renderColoredString() 将字符串转换成 ansi 格式,用 ansi 控制代码模式 %y 替换成(黄色)。 yii\helpers\BaseConsole
restoreCursorPosition() 通过将 ANSI 控制代码 RCP 发送到终端,恢复 saveCursorPosition() 保存的光标位置。 yii\helpers\BaseConsole
saveCursorPosition() 将 ANSI 控制代码 SCP 发送到终端,保存当前光标位置。 可以使用 restoreCursorPosition() 恢复位置。 yii\helpers\BaseConsole
scrollDown() 通过向终端发送 ANSI 控制码 SD,向下滚动整个页面。 在顶部添加新行。ANSI 不支持这种方法。windows 中使用的 SYS。 yii\helpers\BaseConsole
scrollUp() 通过向终端发送 ANSI 控制码 SU,将整个页面向上滚动。 在底部添加了新行。ANSI 不支持这种方法。windows 中使用的 SYS。 yii\helpers\BaseConsole
select() 给用户一个选项进行选择。 输入 '?' 则给出可供选择的选项及其选项列表对应的说明解释。 yii\helpers\BaseConsole
showCursor() 当光标被 hideCursor() 隐藏时,将通过发送 ANSI DECTCEM 代码 ?25h 再次显示光标。 yii\helpers\BaseConsole
startProgress() 开始在屏幕上显示进度条。 yii\helpers\BaseConsole
stderr() 将字符串打印到 STDERR。 yii\helpers\BaseConsole
stdin() 从 STDIN 获取输入,并为 EOL 返回右侧被截取后的字符串 yii\helpers\BaseConsole
stdout() 打印字符串到 STDOUT。 yii\helpers\BaseConsole
streamSupportsAnsiColors() 如果流支持彩色化则返回 true。如果流不支持则 ANSI 颜色被禁用。 yii\helpers\BaseConsole
stripAnsiFormat() 从字符串中剥离 ANSI 控制代码 yii\helpers\BaseConsole
updateProgress() 使用 startProgress() 更新已启动的进度条。 yii\helpers\BaseConsole
wrapText() 自动缩进以适合屏幕大小 yii\helpers\BaseConsole
xtermBgColor() 返回 xterm 背景颜色的 ansi 格式代码。 yii\helpers\BaseConsole
xtermFgColor() 返回 xterm 前景颜色的 ansi 格式代码。 yii\helpers\BaseConsole

方法详情

ansiFormat() 公共 静态 方法

将返回一个使用给定 ANSI 样式格式化的字符串。

public static string ansiFormat($string, $format = [])
$string string

要格式化的字符串

$format array

包含格式化值的数组。 您可以传递任何 FG_*BG_*TEXT_* 常量,也可以通过 xtermFgColor()] 和 xtermBgColor() 来指定格式。

ansiFormatCode() 公共 静态 方法

返回 ANSI 格式代码。

public static string ansiFormatCode($format)
$format array

包含格式化值的数组。 您可以传递任何 FG_*BG_*TEXT_* 常量,也可以通过 xtermFgColor()] 和 xtermBgColor() 来指定格式。

return string

ANSI 格式代码根据给定的格式化常量进行格式化。

ansiStrlen() 公共 静态 方法

返回没有 ANSI 颜色代码的字符串长度。

public static integer ansiStrlen($string)
$string string

计算长度的字符串

return integer

不包括 ANSI 格式字符的字符串长度

ansiToHtml() 公共 静态 方法

将 ANSI 格式的字符串转换为 HTML。

Note: 目前不支持 xTerm 256 位颜色。

public static string ansiToHtml($string, $styleMap = [])
$string string

要转换的字符串。

$styleMap array

ANSI 控件代码的可选映射, 如 FG_COLOR 或者 BOLD 去设置一组 CSS 样式的定义。 CSS 样式的定义被描述为一个数组, 其中数组键对应 CSS 样式属性名称,且值为 CSS 值。 当渲染的时候如果值是数组将使用 ' ' 进行拼接合并。

return string

ANSI 格式字符串的 HTML 表示

beginAnsiFormat() 公共 静态 方法

输出一种 ANSI 格式代码,它影响以后打印的任何文本的格式。

参见:

public static void beginAnsiFormat($format)
$format array

包含格式化值的数组。 您可以传递任何 FG_*BG_*TEXT_* 常量,也可以通过 xtermFgColor()] 和 xtermBgColor() 来指定格式。

clearLine() 公共 静态 方法

清除行,光标当前是通过发送 ANSI 控制代码 EL 带有参数 2 到终端。 不会改变光标位置。

public static void clearLine()
clearLineAfterCursor() 公共 静态 方法

通过将参数为 0 的 ANSI 控制代码 EL 发送到终端,将文本从光标位置清除到行尾。 不会改变光标位置。

public static void clearLineAfterCursor()
clearLineBeforeCursor() 公共 静态 方法

通过向终端发送带有变量 1 的 ANSI 控制码 EL,将文本从光标位置清除到行的开始位置。 不会改变光标位置。

public static void clearLineBeforeCursor()
clearScreen() 公共 静态 方法

通过发送参数带有 2 的 ANSI 控制代码 ED 到终端来清除整个屏幕内容。 不会改变光标位置。 Note: ANSI.SYS 能够实现在 windows 中将坐标位置重置到屏幕左上角。

public static void clearScreen()
clearScreenAfterCursor() 公共 静态 方法

通过发送参数带有 0 的 ANSI 控制代码 ED 发送到终端,将文本从光标清除到屏幕末端。 不会改变光标位置。

public static void clearScreenAfterCursor()
clearScreenBeforeCursor() 公共 静态 方法

通过发送参数带有 1 的 ANSI 控制代码 ED 发送到终端,将文本从光标处清除到屏幕的开头。 不会改变光标位置。

public static void clearScreenBeforeCursor()
confirm() 公共 静态 方法

请用户输入 y 或 n 进行确认。

一个典型的用法如下:

if (Console::confirm("Are you sure?")) {
    echo "user typed yes\n";
} else {
    echo "user typed no\n";
}
public static boolean confirm($message, $default false)
$message string

在等待用户输入之前打印出来

$default boolean

如果没有选择,将返回他的值。

return boolean

用户是否确认

endAnsiFormat() 公共 静态 方法

重置之前方法 beginAnsiFormat() 设置的任何 ANSI 格式。 在此之后的任何输出都将具有默认的文本格式。 这等于调用。

echo Console::ansiFormatCode([Console::RESET])
public static void endAnsiFormat()
endProgress() 公共 静态 方法

通过 startProgress() 结束已启动的进度条。

参见:

public static void endProgress($remove false, $keepPrefix true)
$remove string|boolean

它可能是 false 将进度条留在屏幕上,只打印一个换行符。 如果设置为 true,进度条的线条将被清除。 这也可能是要显示的字符串不是进度条。

$keepPrefix boolean

当进度条开始移除时是否保留指定的前缀。 默认设置为 true。

error() 公共 静态 方法

打印文本到 STDERR 并附加回车信息(PHP_EOL)。

public static integer|boolean error($string null)
$string string

打印的字符串

return integer|boolean

发生错误时将打印字节数或者返回 false。

errorSummary() 公共 静态 方法 (自版本 2.0.14 可用)

生成验证错误的摘要。

public static string errorSummary($models, $options = [])
$models yii\base\Model|yii\base\Model[]

这个模型将显示验证错误的信息。

$options array

标签选项的键-值对。以下是特殊处理的选项:

  • showAllErrors:布尔型,如果设置为 true,则每个属性的每个错误消息将以其他方式显示。 否则将只显示每个属性的第一个错误消息。默认为 false
return string

The generated error summary

escape() 公共 静态 方法

当字符串被解析时如果包含转义符 % 则它们不会通过 renderColoredString() 解释为颜色代码。

public static string escape($string)
$string string

转义字符串

getScreenSize() 公共 静态 方法

返回终端屏幕大小。

使用如下:

list($width, $height) = ConsoleHelper::getScreenSize();
public static array|boolean getScreenSize($refresh false)
$refresh boolean

是否强制检查而不是重用缓存的大小值。 这有助于在应用程序运行时检测窗口大小的变化, 但可能无法在每个终端上获得最新的值。

return array|boolean

当无法确定数组中的值($width,$height)或者返回 false。

hideCursor() 公共 静态 方法

通过向终端发送 ANSI DECTCEM 代码 ?25l 来隐藏光标。 使用 showCursor() 将它带回来。 应用程序退出时不要忘记显示光标。退出后光标可能会隐藏在终端中。

public static void hideCursor()
input() 公共 静态 方法

请求用户输入。当用户键入回车时结束(PHP_EOL)。 可选,它还提供了一个提示。

public static string input($prompt null)
$prompt string

等待输入之前显示提示(可选)

return string

用户的输入

isRunningOnWindows() 公共 静态 方法

如果控制台在 windows 上运行,则返回 true。

public static boolean isRunningOnWindows()
markdownToAnsi() 公共 静态 方法

通过应用一些 ANSI 格式,将 Markdown 转换为在控制台环境中更好的可读性。

public static string markdownToAnsi($markdown)
$markdown string

Markdown 的字符串。

return string

解析后的结果为 ANSI 格式化字符串。

moveCursorBackward() 公共 静态 方法

通过向终端发送 ANSI 控制代码 CUB,将终端光标向后移动。 如果光标已经在屏幕边缘,则不会有任何效果。

public static void moveCursorBackward($steps 1)
$steps integer

光标应向后移动的步数

moveCursorDown() 公共 静态 方法

通过向终端发送 ANSI 控制代码 CUD 将终端光标向下移动。 如果光标已经在屏幕边缘,则不会有任何效果。

public static void moveCursorDown($rows 1)
$rows integer

光标应向下移动的行数

moveCursorForward() 公共 静态 方法

通过向终端发送 ANSI 控制代码 CUF,将终端光标向前移动。 如果光标已经在屏幕边缘,则不会有任何效果。

public static void moveCursorForward($steps 1)
$steps integer

光标应向前移动的步数

moveCursorNextLine() 公共 静态 方法

通过向终端发送 ANSI 控制代码 CNL,将终端光标移动到下一行的开头。

public static void moveCursorNextLine($lines 1)
$lines integer

光标应向下移动的行数

moveCursorPrevLine() 公共 静态 方法

通过向终端发送 ANSI 控制代码 CPL,将终端光标移动到前一行的开头。

public static void moveCursorPrevLine($lines 1)
$lines integer

应该向上移动光标的行数

moveCursorTo() 公共 静态 方法

通过发送 ANSI 控制码 CUP 或 CHA 到终端,将光标移动到列和行给定的绝对位置。

public static void moveCursorTo($column, $row null)
$column integer

基于 1 的列号,1 是屏幕的左边缘。

$row integer|null

基于 1 的行号,1 是屏幕的上边缘。如果没有设置,将光标移动到当前行。

moveCursorUp() 公共 静态 方法

通过向终端发送 ANSI 控制代码 CUU 将终端光标向上移动。 如果光标已经在屏幕边缘,则不会有任何效果。

public static void moveCursorUp($rows 1)
$rows integer

光标应该向上移动的行数

output() 公共 静态 方法

打印带有回车信息的 STDOUT 文本(PHP_EOL)。

public static integer|boolean output($string null)
$string string

打印的字符串

return integer|boolean

发生错误时将打印字节数或者返回 false。

prompt() 公共 静态 方法

提示用户输入并验证。

public static string prompt($text, $options = [])
$text string

提示字符串

$options array

验证输入的选项:

  • required:无论是否被要求
  • default:没用没有插入任何值则返回默认值
  • pattern:通过正则表达式模式匹配验证用户的输入
  • validator:回调函数验证输入。函数必须接受两个参数:
  • input:去验证用户的输入
  • error:如果验证失败则通过引用进行传递错误信息。
return string

用户输入

renderColoredString() 公共 静态 方法

将字符串转换成 ansi 格式,用 ansi 控制代码模式 %y 替换成(黄色)。

https://github.com/pear/Console_Color2/blob/master/Console/Color2.php 使用几乎相同的语法 这张转换表如下: (在一些终端上 'bold' 意思是 'light')。它几乎与 irssi 使用的转换表相同。

             text      text            background
 ------------------------------------------------
 %k %K %0    black     dark grey       black
 %r %R %1    red       bold red        red
 %g %G %2    green     bold green      green
 %y %Y %3    yellow    bold yellow     yellow
 %b %B %4    blue      bold blue       blue
 %m %M %5    magenta   bold magenta    magenta
 %p %P       magenta (think: purple)
 %c %C %6    cyan      bold cyan       cyan
 %w %W %7    white     bold white      white

 %F     Blinking, Flashing
 %U     Underline
 %8     Reverse
 %_,%9  Bold

 %n     Resets the color
 %%     A single %

第一个参数是要转换的字符串, 第二个参数是可选的标志是否需要使用颜色。它默认设置为 true,如果设置为 false, 颜色代码将被移除(并且 %% 将被改变为 %)

public static string renderColoredString($string, $colored true)
$string string

转换的字符串

$colored boolean

是否应该为字符串设定颜色?

restoreCursorPosition() 公共 静态 方法

通过将 ANSI 控制代码 RCP 发送到终端,恢复 saveCursorPosition() 保存的光标位置。

public static void restoreCursorPosition()
saveCursorPosition() 公共 静态 方法

将 ANSI 控制代码 SCP 发送到终端,保存当前光标位置。 可以使用 restoreCursorPosition() 恢复位置。

public static void saveCursorPosition()
scrollDown() 公共 静态 方法

通过向终端发送 ANSI 控制码 SD,向下滚动整个页面。 在顶部添加新行。ANSI 不支持这种方法。windows 中使用的 SYS。

public static void scrollDown($lines 1)
$lines integer

向下滚动的行数

scrollUp() 公共 静态 方法

通过向终端发送 ANSI 控制码 SU,将整个页面向上滚动。 在底部添加了新行。ANSI 不支持这种方法。windows 中使用的 SYS。

public static void scrollUp($lines 1)
$lines integer

向上滚动的行数

select() 公共 静态 方法

给用户一个选项进行选择。 输入 '?' 则给出可供选择的选项及其选项列表对应的说明解释。

public static string select($prompt, $options = [])
$prompt string

提示消息

$options array

从键值数组中进行选项的选择。 输入和使用的是什么键,值是通过帮助命令显示给最终用户的内容。

return string

用户选择的选项字符

showCursor() 公共 静态 方法

当光标被 hideCursor() 隐藏时,将通过发送 ANSI DECTCEM 代码 ?25h 再次显示光标。

public static void showCursor()
startProgress() 公共 静态 方法

开始在屏幕上显示进度条。

这进度条将被 updateProgress() 进行更新并且通过 endProgress() 进行结束。

下面的示例显示了进度条的简单用法:

Console::startProgress(0, 1000);
for ($n = 1; $n <= 1000; $n++) {
    usleep(1000);
    Console::updateProgress($n, 1000);
}
Console::endProgress();

像 Git 克隆一样进步(只显示状态信息):

Console::startProgress(0, 1000, 'Counting objects: ', false);
for ($n = 1; $n <= 1000; $n++) {
    usleep(1000);
    Console::updateProgress($n, 1000);
}
Console::endProgress("done." . PHP_EOL);

参见:

public static void startProgress($done, $total, $prefix '', $width null)
$done integer

已完成项的数量

$total integer

需要完成的项目的总数量

$prefix string

在进度条之前显示的可选字符串。 默认为空字符串,因此不显示前缀。

$width integer|boolean

可选的进度条宽度。 可以通过整数来表示进度条显示的字符或者可以使用 0 到 1 之间的浮点数百分比来表示。 也可以将其设置为 false 以禁用只显示进度信息,比如百分比,总数量以及预估到达时间。 如果不设置,横条将和屏幕一样宽。屏幕大小将使用 getScreenSize() 来检测。

stderr() 公共 静态 方法

将字符串打印到 STDERR。

public static integer|boolean stderr($string)
$string string

要打印的字符串

return integer|boolean

发生错误时将打印字节数或者返回 false

stdin() 公共 静态 方法

从 STDIN 获取输入,并为 EOL 返回右侧被截取后的字符串

public static string stdin($raw false)
$raw boolean

如果设置 true,返回的字符串不进行删除

return string

从 stdin 读取的字符串

stdout() 公共 静态 方法

打印字符串到 STDOUT。

public static integer|boolean stdout($string)
$string string

将要打印的字符串

return integer|boolean

发生错误时将打印字节数或者返回 false

streamSupportsAnsiColors() 公共 静态 方法

如果流支持彩色化则返回 true。如果流不支持则 ANSI 颜色被禁用。

  • 不含 ansicon 窗口
  • 非 tty 控制台
public static boolean streamSupportsAnsiColors($stream)
$stream mixed
return boolean

如果流支持 ANSI 颜色返回 true,否则返回 false。

stripAnsiFormat() 公共 静态 方法

从字符串中剥离 ANSI 控制代码

public static string stripAnsiFormat($string)
$string string

匹配替换的字符串

updateProgress() 公共 静态 方法

使用 startProgress() 更新已启动的进度条。

参见:

public static void updateProgress($done, $total, $prefix null)
$done integer

完成的项的数量。

$total integer

需要完成的项目的总数量

$prefix string

在进度条之前显示的可选字符串。 默认是 null 表示由 startProgress() 指定将被使用的前缀。 如果指定前缀,它将更新以后调用将使用的前缀。

wrapText() 公共 静态 方法 (自版本 2.0.4 可用)

自动缩进以适合屏幕大小

如果无法检测到屏幕大小,或者缩进大于屏幕尺寸,则文本不会被换行。

第一行将被 not 定义,因此 Console::wrapText("Lorem ipsum dolor sit amet.", 4) 会产生以下输出,给定屏幕宽度为 16 个字符:

Lorem ipsum
    dolor sit
    amet.
public static string wrapText($text, $indent 0, $refresh false)
$text string

将要被覆盖的字符串

$indent integer

用于缩进的空格数。

$refresh boolean

是否强制刷新屏幕大小。 这个将被传递给 getScreenSize()

return string

被覆盖的字符串。

xtermBgColor() 公共 静态 方法

返回 xterm 背景颜色的 ansi 格式代码。

您可以将它的返回值传递给一个格式化方法: ansiFormat()ansiFormatCode()beginAnsiFormat()

参见 http://en.wikipedia.org/wiki/Talk:ANSI_escape_code#xterm-256colors.

public static string xtermBgColor($colorCode)
$colorCode integer

Xterm 颜色代码

xtermFgColor() 公共 静态 方法

返回 xterm 前景颜色的 ansi 格式代码。

您可以将这个函数的返回值传递给以下格式方法之一: ansiFormat()ansiFormatCode()beginAnsiFormat()

参见 http://en.wikipedia.org/wiki/Talk:ANSI_escape_code#xterm-256colors.

public static string xtermFgColor($colorCode)
$colorCode integer

Xterm 颜色代码