legionth/reactphp-progressbar

使用ReactPHP创建进度条流的方法

v1.0.1 2019-10-30 21:37 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:52 UTC


README

一个事件驱动的进度条流,可以添加到其他流中显示其当前进度。

目录

使用方法

此流可以像其他ReactPHP Stream一样集成

$loop = Factory::create();

$progressBarStream = new ProgressbarStream();

$input = new React\Stream\WritableResourceStream(STDOUT, $loop);
$output = new React\Stream\ReadableResourceStream(STDIN, $loop);

$output->pipe($progressBarStream);

$progressBarStream->on('error', function ($errorMessage) {
    echo $errorMessage;
});

$progressBarStream->on('data', function ($progressBarString) use ($input) {
    $input->write($progressBarString . PHP_EOL);
});

$loop->addPeriodicTimer(1, function () use ($output) {
    $output->emit('data', array(1));
});

$loop->addPeriodicTimer(3, function () use ($output) {
    $output->emit('data', array(10));
});

$loop->run();

此示例将以每秒1个单位/百分比的速率,每3秒以10个单位/百分比的速率更新进度条。此示例可以在示例文件夹中找到。

进度条流永远不会超过最大值。如果当前值达到或超过最大值,则流将结束。

data-事件

data事件包含进度条的可视化。此事件发射的数据是一个字符串。如果进度条更新,将发射此事件。

currentValue-事件

currentValue事件包含当前进度条的整数值。如果进度条更新,将发射此事件。

maximumValue-事件

maximumValue事件包含进度条最大可达值的整数值。如果进度条更新,将发射此事件。

安装

安装此库的推荐方法是通过Composer。对Composer不熟悉?新用户?

这将安装最新支持的版本

$ composer require legionth/progressbar:^1.0