plumphp / plum-console
将 Symfony Console 组件集成到 Plum 中。
Requires
- php: >=5.5
- cocur/vale: ~0.2
- plumphp/plum: ~0.2
- symfony/console: ~2.5|~3.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.8
README
PlumConsole 将 Symfony Console 组件集成到 Plum 中。 Plum 是一个用于 PHP 的数据处理管道。
由欧洲维也纳的 Florian Eckerstorfer 开发。
安装
您可以使用 Composer 安装 Plum。
$ composer require plumphp/plum-console
使用方法
有关 Plum 的更多信息,请参阅 Plum 文档。
PlumConsole 当前包含两个写入器: ConsoleProgressWriter
和 ConsoleTableWriter
。这两个都旨在用于使用 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);
格式化程序提供了选项来配置显示消息和堆栈跟踪时的粒度,并允许您配置它们的打印方式。以下示例显示了所有可用选项和默认值。请注意,messageTemplate
和 traceTemplate
是使用 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 日)
版本 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 文件。