plumphp/plum-console

将 Symfony Console 组件集成到 Plum 中。

v0.5 2016-03-01 12:59 UTC

This package is auto-updated.

Last update: 2024-09-20 09:52:03 UTC


README

Plum

PlumConsole 将 Symfony Console 组件集成到 Plum 中。 Plum 是一个用于 PHP 的数据处理管道。

Build Status Windows Build status Scrutinizer Code Quality Code Coverage StyleCI

由欧洲维也纳的 Florian Eckerstorfer 开发。

安装

您可以使用 Composer 安装 Plum。

$ composer require plumphp/plum-console

使用方法

有关 Plum 的更多信息,请参阅 Plum 文档

PlumConsole 当前包含两个写入器: ConsoleProgressWriterConsoleTableWriter。这两个都旨在用于使用 Symfony Console 组件的应用程序。此外,它还提供了 ExceptionFormatter,可以帮助您打印漂亮的错误消息给用户。

ConsoleProgressWriter

Plum\PlumConsole\ConsoleProgressWriter 在控制台中显示工作流程的进度。

use Plum\PlumConsole\ConsoleProgressWriter;
use Symfony\Component\Console\Helper\ProgressBar;

// ...
// $output is an instance of Symfony\Component\Console\Output\OutputInterface
// $reader is an instance of Plum\Plum\Reader\ReaderInterface

$writer = new ConsoleProgressWriter(new ProgressBar($output, $reader->count()));

ConsoleTableWriter

Plum\PlumConsole\ConsoleTableWriter 将处理后的数据以表格形式输出到控制台。

use Plum\PlumConsole\ConsoleTableWriter;
use Symfony\Component\Console\Helper\Table;

// ...
// $output is an instance of Symfony\Component\Console\Output\OutputInterface

$writer = new ConsoleTableWriter(new Table($output));

// ConsoleTableWriter can automatically detect and set the headers
$writer->autoDetectHeader();

// Headers can also be set manually. This is required when the item is an object
$writer->setHeader(['Country', 'City']);

ExceptionFormatter

Plum 提供了捕获异常的选项。当此选项处于活动状态时,即使某个项导致错误,工作流程也可以继续处理。然而,您必须手动输出异常,这可能是一个繁琐的过程。《Plum\PlumConsole\ExceptionFormatter》可以帮助您打印异常。

可以使用 Symfony Console 的 --verbose 标志来控制信息的粒度。默认情况下,当应用程序使用 --verbose-v 调用时,将打印异常消息;当使用 -vv 时,将打印消息和堆栈跟踪。

use Plum\Plum\Workflow;
use Plum\PlumConsole\ExceptionFormatter;

$workflow = Workflow(['resumeOnError' => true]);
// Build workflow
$result = $workflow->process($reader);

// $output is an instance of Symfony\Component\Console\Output\OutputInterface

$formatter = new ExceptionFormatter($output);
$formatter->outputExceptions($result);

格式化程序提供了选项来配置显示消息和堆栈跟踪时的粒度,并允许您配置它们的打印方式。以下示例显示了所有可用选项和默认值。请注意,messageTemplatetraceTemplate 是使用 sprintf() 打印的。

use Plum\PlumConsole\ExceptionFormatter;
use Symfony\Component\Console\Output\OutputInterface;

// $output is an instance of Symfony\Component\Console\Output\OutputInterface

$formatter = new ExceptionFormatter($output, [
    'minMessageVerbosity' => OutputInterface::VERBOSITY_VERBOSE,
    'minTraceVerbosity'   => OutputInterface::VERBOSITY_VERY_VERBOSE,
    'messageTemplate'     => '<error>%s</error>',
    'traceTemplate'       => '%s',
]);

变更日志

版本 0.5(2016 年 3 月 1 日)

  • 添加对 Symfony 3 的支持

版本 0.4(2015 年 10 月 24 日)

  • #2 添加打印漂亮异常消息的帮助程序
  • #3 ConsoleTableWriter 现在可以写入对象项

版本 0.3(2015 年 5 月 15 日)

  • 添加 ConsoleTableWriter

版本 0.2.1(2015 年 4 月 28 日)

  • 修复 Plum 版本

版本 0.2(2015 年 4 月 21 日)

  • 修复对 Plum 的依赖

版本 0.1(2014 年 3 月 24 日)

  • 首次发布
  • 与 Plum v0.1 兼容

许可证

MIT 许可证适用于 plumphp/plum-console。有关完整的版权和许可信息,请查看与此源代码一起分发的 LICENSE 文件。