volnix / jobber
一个用于打印典型 CLI 作业输出的精简库。
1.4.2
2015-08-14 13:47 UTC
Requires
- php: >= 5.4
- kevinlebrun/colors.php: >= 0.2
Requires (Dev)
- phpunit/phpunit: ~3.7
README
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
仅仅是error
和stop
的别名,在一次性调用中
- 注意:
如果你想要切换作业的详细程度,这是支持的。这将仅禁用信息消息,同时允许其他消息通过。
// 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"