volnix/jobber

一个用于打印典型 CLI 作业输出的精简库。

1.4.2 2015-08-14 13:47 UTC

This package is auto-updated.

Last update: 2024-09-08 09:38:38 UTC


README

Build Status Downloads Latest Stable Version Code Coverage

Jobber 是一个超级精简的库,用于打印 CLI 作业的输出。它通过使用广受赞誉的 CLI 颜色库 kevinlebrun/colors.php 来支持命令行颜色。

它以简单为设计理念,因为当构建基于 CLI 的脚本时,打印作业输出应该是你最不需要担心的事情。

Jobber 的示例输出

***************************************************
2015-01-23 15:52:35 - Starting test_name

INFO: 2015-01-23 15:52:35 - foo
WARNING: 2015-01-23 15:52:35 - bar
SUCCESS: 2015-01-23 15:52:35 - baz
ERROR: 2015-01-23 15:52:35 - qux

2015-01-23 15:52:35 - Execution Time: 0.0 seconds / Peak memory usage: 3.22 Mb
***************************************************

安装

命令行

composer require volnix/jobber:~1.0

composer.json

{
    "name": "your/application",
    "require": {
        "volnix/jobber": "~1.0"
    }
}

使用方法

通常,打印机 (Volnix/Jobber/Printer) 将启动,然后停止。启动方法打印出作业名称和一些星号,以围住此作业的输出。停止方法打印内存使用情况、运行时间以及更多围栏。

use Volnix/Jobber/Printer;

Printer::start('my_job_name');
Printer::info('Something happened, but it is not super important.');
Printer::stop();

Jobber 还支持以纯文本格式获取打印机的输出。这对于在某个地方记录作业输出非常有用。

Printer::start('my_job_name');
Printer::info('Something happened, but it is not super important.');
Printer::stop();

$my_logger->info(Printer::getOutput());

所有消息类型

  • 信息 (Printer::info())
  • 警告 (Printer::warning())
  • 成功 (Printer::success())
  • 错误 (Printer::error())
  • 致命 (Printer::fatal())
    • 注意: fatal 仅仅是 errorstop 的别名,在一次性调用中

如果你想要切换作业的详细程度,这是支持的。这将仅禁用信息消息,同时允许其他消息通过。

// turn off verbosity, disabling info messages
Printer::setVerbosity(false);

注意: 当调用 Printer::getOutput() 进行记录时,仍会返回信息消息

如果你想要在一个命令中运行多个作业 "会话",你可以重置打印机。

// do job 1
Printer::start('job_number_1');
// do something in your code...
Printer::success('Something good happened.');
Printer::stop();

// reset the printer
Printer::reset();

// start job 2
Printer::start('job_number_2');
// ...

最后,你也可以通过传递标记化 (%s, %d, 等.) 字符串作为第一个参数和一个标记数组作为第二个参数来使用 sprintf 风格的消息。

// printing with tokens
Printer::start('something job');
Printer::info('Exported %d records to %s.', [10, '/filepath/something/here.txt']); // "Exported 10 records to /filepath/something/here.txt"