Class yii\helpers\BaseConsole

继承yii\helpers\BaseConsole
子类yii\helpers\Console
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/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() 清除行, 通过将带有参数2ANSI控制代码EL发送到终端, 光标当前处于打开状态. yii\helpers\BaseConsole
clearLineAfterCursor() 通过将带有参数0ANSI控制代码EL发送到终端, 将文本从光标位置清除到行尾. yii\helpers\BaseConsole
clearLineBeforeCursor() 通过将带有参数1ANSI控制代码EL发送到终端, 将文本从光标位置清除到行首. yii\helpers\BaseConsole
clearScreen() 通过将带有参数2ANSI控制代码ED发送到终端, 来清除整个屏幕内容. yii\helpers\BaseConsole
clearScreenAfterCursor() 通过将带有参数0ANSI控制代码ED发送到终端, 将文本从光标位置清除到屏幕的末尾. yii\helpers\BaseConsole
clearScreenBeforeCursor() 通过将带有参数1ANSI控制代码ED发送到终端, 将文本从光标位置清除到屏幕的开头. yii\helpers\BaseConsole
confirm() 要求用户通过键入yn来确认. 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 控制代码?25l来隐藏光标. yii\helpers\BaseConsole
input() 请求用户输入. 当用户键入回车符(PHP_EOL)时结束. yii\helpers\BaseConsole
isRunningOnWindows() 如果控制台在windows上运行, 则返回true. yii\helpers\BaseConsole
markdownToAnsi() 通过应用一些ANSI格式, 将Markdown转换为在控制台环境中更好的可读性. yii\helpers\BaseConsole
moveCursorBackward() 通过向终端发送 ANSI 控制代码 CUU, 将终端光标向后移动. yii\helpers\BaseConsole
moveCursorDown() 通过向终端发送 ANSI 控制代码 CUU, 将终端光标向下移动. yii\helpers\BaseConsole
moveCursorForward() 通过向终端发送 ANSI 控制代码 CUU, 将终端光标向前移动. yii\helpers\BaseConsole
moveCursorNextLine() 通过向终端发送 ANSI 控制代码 CUU, 将终端光标移动到下一行的开头. yii\helpers\BaseConsole
moveCursorPrevLine() 通过向终端发送 ANSI 控制代码 CUU 将终端光标移动到上一行的开头. yii\helpers\BaseConsole
moveCursorTo() 通过向终端发送 ANSI 控制代码 CUU, 将终端光标移动到列和行给出的绝对位置. yii\helpers\BaseConsole
moveCursorUp() 通过向终端发送 ANSI 控制代码 CUU, 将终端光标向上移动. yii\helpers\BaseConsole
output() 打印带有回车信息(PHP_EOL)的STDOUT文本. yii\helpers\BaseConsole
prompt() 提示用户输入并验证它. yii\helpers\BaseConsole
renderColoredString() 将字符串转换为ansi格式, 通过用ansi控制代码替换%y(黄色)等模式. yii\helpers\BaseConsole
restoreCursorPosition() 通过向终端发送 ANSI 控制代码 RCP, 将光标位置恢复到用 saveCursorPosition() 保存的位置. yii\helpers\BaseConsole
saveCursorPosition() 通过向终端发送 ANSI 控制代码 SCP, 来保存当前光标位置. yii\helpers\BaseConsole
scrollDown() 通过向终端发送 ANSI 控制代码 SD, 将整个页面向下滚动. yii\helpers\BaseConsole
scrollUp() 通过向终端发送 ANSI 控制代码 SU, 将整个页面向上滚动. yii\helpers\BaseConsole
select() 为用户提供可供选择的选项. 输入?则给出可供选择的选项及其选项列表的对应的说明解释. yii\helpers\BaseConsole
showCursor() 当光标被 hideCursor() 隐藏后, 通过向终端发送 ANSI 控制代码?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() public static 方法

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

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

要格式化的字符串.

$format array

包含格式化值的数组. 您可以传递任何FG_*, BG_*TEXT_*常量以及 xtermFgColor()xtermBgColor() 来指定格式.

ansiFormatCode() public static 方法

返回ANSI格式的代码.

public static string ansiFormatCode ( $format )
$format array

包含格式值的数组. 您可以传递任何FG_*, BG_*TEXT_*常量以及 xtermFgColor()xtermBgColor() 来指定格式.

return string

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

ansiStrlen() public static 方法

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

public static integer ansiStrlen ( $string )
$string string

要测量长度的字符串.

return integer

不包含ANSI格式字符的字符串长度.

ansiToHtml() public static 方法

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() public static 方法

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

参见:

public static void beginAnsiFormat ( $format )
$format array

包含格式值的数组. 您可以传递任何FG_*, BG_*TEXT_*常量以及 xtermFgColor()xtermBgColor() 来指定格式.

clearLine() public static 方法

清除行, 通过将带有参数2ANSI控制代码EL发送到终端, 光标当前处于打开状态.

光标位置不会改变.

public static void clearLine ( )
clearLineAfterCursor() public static 方法

通过将带有参数0ANSI控制代码EL发送到终端, 将文本从光标位置清除到行尾.

光标位置不会改变.

public static void clearLineAfterCursor ( )
clearLineBeforeCursor() public static 方法

通过将带有参数1ANSI控制代码EL发送到终端, 将文本从光标位置清除到行首.

光标位置不会改变.

public static void clearLineBeforeCursor ( )
clearScreen() public static 方法

通过将带有参数2ANSI控制代码ED发送到终端, 来清除整个屏幕内容.

光标位置不会改变.

Note: ANSI.SYS 能够实现在 windows 中将坐标位置重置到屏幕左上角.

public static void clearScreen ( )
clearScreenAfterCursor() public static 方法

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

光标位置不会改变.

public static void clearScreenAfterCursor ( )
clearScreenBeforeCursor() public static 方法

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

光标位置不会改变.

public static void clearScreenBeforeCursor ( )
confirm() public static 方法

要求用户通过键入yn来确认.

一个典型的用法如下所示:

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() public static 方法

重置之前方法 beginAnsiFormat() 设置的任何ANSI格式.

在此之后的任何输出都将具有默认的文本格式. 这等于调用:

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

结束由 startProgress() 启动的进度条.

参见:

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

这可以是false, 将进度条留在屏幕上, 只打印换行符. 如果设置为true, 则将清除进度条. 这也可以是要显示的字符串而不是进度条.

$keepPrefix boolean

是否保留在删除进度条时为进度条指定的前缀. 默认为true.

error() public static 方法

将文本打印到STDERR, 并附加回车符(PHP_EOL).

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

要打印的文本.

return integer|boolean

打印的字节数, 或错误时返回false.

errorSummary() public static 方法 (可用自版本: 2.0.14)

生成验证错误的摘要.

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

要显示其验证错误的模型.

$options array

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

  • showAllErrors: boolean, 如果设置为true, 则将显示每个属性的每个错误信息, 否则将仅显示每个属性的第一条错误信息. 默认为false.
return string

生成的错误摘要.

escape() public static 方法

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

public static string escape ( $string )
$string string

String to escape

getScreenSize() public static 方法

返回终端屏幕大小.

用法:

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

是否强制检查而不是重新使用缓存的大小值. 这对于在应用程序运行时检测更改窗口大小很有用, 但可能无法在每个终端上获取最新值.

return array|boolean

数组($width, $height), 或无法确定大小时返回false.

hideCursor() public static 方法

通过向终端发送 ANSI 控制代码?25l来隐藏光标.

使用 showCursor() 将其恢复. 当您的应用程序退出时, 不要忘记显示光标. 退出后, 光标可能会隐藏在终端中.

public static void hideCursor ( )
input() public static 方法

请求用户输入. 当用户键入回车符(PHP_EOL)时结束.

可选的, 它还提供了一个提示.

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

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

return string

用户的输入.

isRunningOnWindows() public static 方法

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

public static boolean isRunningOnWindows ( )
markdownToAnsi() public static 方法

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

public static string markdownToAnsi ( $markdown )
$markdown string

Markdown字符串.

return string

解析后的结果, ANSI格式化的字符串.

moveCursorBackward() public static 方法

通过向终端发送 ANSI 控制代码 CUU, 将终端光标向后移动.

如果光标已经位于屏幕边缘, 则不会有任何效果.

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

光标应向后移动的步数.

moveCursorDown() public static 方法

通过向终端发送 ANSI 控制代码 CUU, 将终端光标向下移动.

如果光标已经位于屏幕边缘, 则不会有任何效果.

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

光标应向下移动的行数.

moveCursorForward() public static 方法

通过向终端发送 ANSI 控制代码 CUU, 将终端光标向前移动.

如果光标已经位于屏幕边缘, 则不会有任何效果.

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

光标应向前移动的步数.

moveCursorNextLine() public static 方法

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

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

光标应向下移动的行数.

moveCursorPrevLine() public static 方法

通过向终端发送 ANSI 控制代码 CUU 将终端光标移动到上一行的开头.

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

光标应向上移动的行数.

moveCursorTo() public static 方法

通过向终端发送 ANSI 控制代码 CUU, 将终端光标移动到列和行给出的绝对位置.

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

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

$row integer|null

基于1的行号, 1是屏幕的上边缘. 如果未设置, 则仅在当前行中移动光标.

moveCursorUp() public static 方法

通过向终端发送 ANSI 控制代码 CUU, 将终端光标向上移动.

如果光标已经位于屏幕边缘, 则不会有任何效果.

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

光标应向上移动的行数.

output() public static 方法

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

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

要打印的文本.

return integer|boolean

打印的字节数, 或错误时返回false.

prompt() public static 方法

提示用户输入并验证它.

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

提示字符串.

$options array

验证输入的选项:

  • required: 是否必填(必须输入).
  • default: 如果用户未输入任何值时使用的默认值.
  • pattern: 通过正则表达式模式来验证用户的输入.
  • validator: 用于验证输入的回调函数. 该函数必须接受两个参数:
    • input: 要验证的用户输入.
    • error: 验证失败时通过引用传递的错误值.
return string

用户的输入.

renderColoredString() public static 方法

将字符串转换为ansi格式, 通过用ansi控制代码替换%y(黄色)等模式.

使用与 https://github.com/pear/Console_Color2/blob/master/Console/Color2.php 几乎相同的语法. 转换表是:(bold表示某些终端上的).

             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 %

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

要转换的字符串.

$colored boolean

是否应该为字符串设定颜色? 默认为true, 如果设置为false, 颜色代码将被删除(并将%%转换为%).

restoreCursorPosition() public static 方法

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

public static void restoreCursorPosition ( )
saveCursorPosition() public static 方法

通过向终端发送 ANSI 控制代码 SCP, 来保存当前光标位置.

然后可以使用 restoreCursorPosition() 恢复位置.

public static void saveCursorPosition ( )
scrollDown() public static 方法

通过向终端发送 ANSI 控制代码 SD, 将整个页面向下滚动.

在顶部添加了新行. ANSI 不支持这种方法. windows 中使用 SYS.

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

向下滚动的行数.

scrollUp() public static 方法

通过向终端发送 ANSI 控制代码 SU, 将整个页面向上滚动.

在底部添加了新行. ANSI 不支持这种方法. windows 中使用 SYS.

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

向上滚动的行数.

select() public static 方法

为用户提供可供选择的选项. 输入?则给出可供选择的选项及其选项列表的对应的说明解释.

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

提示信息.

$options array

可供选择的键值数组选项. 键是输入和使用的, 值是用过help命令显示给最终用户的值.

return string

用户选择的选项字符.

showCursor() public static 方法

当光标被 hideCursor() 隐藏后, 通过向终端发送 ANSI 控制代码?25h来显示光标.

public static void showCursor ( )
startProgress() public static 方法

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

进度条将由 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

进度条的可选宽度. 这可以是一个整数, 表示要为进度条显示的字符数. 或者一个介于01之间的浮点数, 表示进度条可能占用屏幕的百分比. 也可以设置为false以禁用进度条, 并仅显示百分比, 项目数以及预估结束时间等进度信息. 如果未设置, 则进度条将与屏幕一样宽. 将使用 getScreenSize() 检测屏幕大小.

stderr() public static 方法

将字符串打印到STDERR.

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

要打印的字符串.

return integer|boolean

打印的字节数, 或错误时返回false.

stdin() public static 方法

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

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

如果设置为true, 则返回原始字符串而不进行修剪.

return string

STDIN读取的字符串.

stdout() public static 方法

将字符串打印到STDOUT.

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

要打印的字符串.

return integer|boolean

打印的字节数, 或错误时返回false.

streamSupportsAnsiColors() public static 方法

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

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

如果流支持ANSI则为true, 否则为false.

stripAnsiFormat() public static 方法

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

public static string stripAnsiFormat ( $string )
$string string

匹配替换的字符串.

updateProgress() public static 方法

更新由 startProgress() 启动的进度条.

参见:

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

已完成的项目数.

$total integer

需要完成的项目总数.

$prefix string

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

wrapText() public static 方法 (可用自版本: 2.0.4)

自动缩进以适合屏幕大小.

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

第一行不会缩进, 因此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() public static 方法

返回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() public static 方法

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

您可以将其返回值传递给其中一种格式化方法: ansiFormat(), ansiFormatCode(), beginAnsiFormat().

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

public static string xtermFgColor ( $colorCode )
$colorCode integer

xterm颜色代码.