bulton-fr / bfw-cli
BFW的命令行模块
Requires
- bulton-fr/bfw: ~3.0.0-RC11@RC
Requires (Dev)
- atoum/atoum: ~3.1
- atoum/visibility-extension: ~1.3
README
使用BFW框架的基本命令行脚本模块。未来将创建一个用于高级命令行脚本使用的模块。
安装
您可以使用composer获取该模块: composer require bulton-fr/bfw-cli @stable
安装模块: ./vendor/bin/bfwInstallModules
配置
没有配置文件 😄
使用它
安装后,只需在您的控制台中运行cli.php
脚本。
使用参数-f
来指定要执行的/src/cli
中的哪个文件。
参数-f
对于/cli.php
脚本来说是必须的,但由它执行的任何命令行脚本也可以有自己的参数。
注意:我们使用函数getopt(),所以请花时间了解如何传递参数值。
示例
默认安装了一个示例脚本,您可以使用它来查看如何执行命令行脚本。
要运行脚本,您应该这样做
$ php cli.php -f=exemple
CLI Exemple file
$ php cli.php -f=exemple -h
CLI Exemple file
Helping Informations : Parameters script
* -v --version : Version of test script
* -p --parameters : Display args array
* -h --help : View this message
$ php cli.php -f=exemple -p
CLI Exemple file
Array
(
[f] => exemple
[p] =>
)
辅助工具
存在一个用于向控制台发送消息的辅助工具。
要写入消息,您可以使用方法displayMsg
和displayMsgNL
。第一个方法会在消息末尾添加换行符。第二个方法会自动在消息末尾添加换行符。
刷新系统
默认情况下,当框架加载时,会调用函数ob_start。因此,所有输出都被发送到一个缓冲区,并在应用程序关闭时显示。为了避免这种情况,您可以使用函数ob_flush强制缓冲区显示。
在命令行中,在写入消息时始终显示缓冲区内容可能很有用。但有时,我们可能更喜欢消息不立即显示。
为了管理这两种情况,集成了一个刷新系统。默认情况下,缓冲区在displayMsg
和displayMsgNL
方法的末尾刷新。但您可以定义不刷新,并选择何时刷新缓冲区。
为此,有以下
- 常量
const FLUSH_AUTO = 'auto';
const FLUSH_MANUAL = 'manual';
- 属性
public static $callObFlush = self::FLUSH_AUTO;
该属性的值定义了是否自动调用刷新。如果值为常量FLUSH_AUTO
,则在方法末尾执行刷新。但如果值为常量FLUSH_MANUAL
,则系统永远不会执行刷新;您应该自己执行。
常量
错误/异常代码
这些常量在抛出异常时发送,并用作异常代码。
ERR_COLOR_NOT_AVAILABLE
如果颜色不可用,则返回异常代码。
ERR_STYLE_NOT_AVAILABLE
如果样式不可用,则返回异常代码。
方法
显示消息
public static function displayMsg(string $msg, string $colorTxt = 'white', string $style = 'normal', string $colorBg = 'black')
public static function displayMsgNL(string $msg, string $colorTxt = 'white', string $style = 'normal', string $colorBg = 'black')
这两个方法将显示带有颜色和/或样式的消息。
第一个方法仅显示消息,第二个方法会在消息末尾添加换行符(\n
)。
参数
string $msg
: 要显示的消息。string $colorTxt
: 文本颜色。请参阅方法colorForShell
以了解可用的颜色。string $style
: 这是文本的样式。请参考styleForShell
方法以获取可用的颜色。string $colorBg
: 这是使用的背景颜色。请参考colorForShell
方法以获取可用的颜色。
如果只有第一个参数,颜色和样式将不会定义,并保持当前shell配置。如果只有前三个参数,背景颜色将不会定义,并保持当前shell配置。
定义在shell中使用的颜色代码
受保护的静态函数 colorForShell(string $color, string $type): int
此方法将为字符串颜色名称返回shell中使用的颜色代码。
可用的颜色有
- 黑色
- 红色
- 绿色
- 黄色
- 蓝色
- 品红色
- 青色
- 白色
如果传入参数的颜色名称不存在,将抛出异常。异常代码将是常量 \BfwCli\Helpers\Cli::ERR_COLOR_NOT_AVAILABLE
。
参数 string $type
是颜色代码将被使用的位置。值可以是 txt
或 bg
。
这是为了返回正确的颜色代码。解释一下,每种颜色都有一个整数值。但是,如果颜色是文本颜色,则值应在30到39之间。如果颜色是背景颜色,则值应在40到49之间。
因此我们询问颜色将用于何处,以返回正确的值范围。
定义在shell中使用的样式代码
受保护的静态函数 styleForShell(string $style): int
此方法将为字符串样式名称返回shell中使用的样式代码。
可用的样式有
- 正常
- 粗体
- 非粗体
- 下划线
- 非下划线
- 闪烁
- 非闪烁
- 反转
- 非反转
如果参数中的样式名称不存在,将抛出异常。异常代码将是常量 \BfwCli\Helpers\Cli::ERR_STYLE_NOT_AVAILABLE
。