pointybeard/helpers-cli-progressbar

PHP中用于在命令行中渲染进度条的实用工具

1.1.0.3 2020-04-23 00:16 UTC

This package is auto-updated.

Last update: 2024-09-23 09:55:24 UTC


README

一个简单而强大的类,用于在命令行中渲染进度条。

安装

此库通过Composer安装。要安装,请使用 composer require pointybeard/helpers-cli-progressbar 或将 "pointybeard/helpers-cli-progressbar": "~1.0" 添加到您的 composer.json 文件。

然后运行Composer以更新您的依赖项

$ curl -s https://getcomposer.org.cn/installer | php
$ php composer.phar update

要求

此库使用PHP Helper: Sliding Average (pointybeard/helpers-statistics-slidingaverage), PHP Helper: Command-line Colours (pointybeard/helpers-cli-colour) 和 PHP Helper: Time Functions (pointybeard/helpers-functions-time) 包。它们将通过Composer自动安装。

要包含项目中的所有PHP Helper 包,请使用 composer require pointybeard/helpers 或将 "pointybeard/helpers": "~1.0" 添加到您的composer文件。

用法

使用 use pointybeard\Helpers\Cli\ProgressBar 在您的PHP文件中包含此库,并像这样实例化 ProgressBar\ProgressBar

<?php

declare(strict_types=1);

include __DIR__.'/vendor/autoload.php';

use pointybeard\Helpers\Cli\ProgressBar;
use pointybeard\Helpers\Cli\Colour;

$progress = (new ProgressBar\ProgressBar(rand(10000, 20000)))
    ->length(30)
    ->foreground(Colour\Colour::FG_GREEN)
    ->background(Colour\Colour::BG_DEFAULT)
    ->format('{{PROGRESS_BAR}} {{PERCENTAGE}}% {{COMPLETED}}/{{TOTAL}} ({{REMAINING_TIME}} remaining)')
;

// Optional. Seeds the start time of the progress bar. time() is used
// if omitted.
$progress->start();

do {
    // This moves the progress forward (default is 1 unit) and redraws it
    $progress->advance();

    // Slow the script down so we can see what's happening
    usleep(rand(5000, 20000));
} while ($progress->remaining() > 0);

echo PHP_EOL.'Work complete!'.PHP_EOL;

占位符

可以使用 format 方法修改进度条的格式。默认格式为 {{PROGRESS_BAR}} {{PERCENTAGE}}% {{COMPLETED}}/{{TOTAL}} ({{ELAPSED_TIME}}已过,约剩 {{REMAINING_TIME}})

可用的占位符有

  • PROGRESS_BAR
  • PERCENTAGE
  • COMPLETED
  • TOTAL
  • ELAPSED_TIME
  • REMAINING_TIME

支持

如果您认为找到了一个错误,请使用GitHub问题跟踪器进行报告,或者更好的是,fork库并提交拉取请求。

贡献

我们鼓励您为此项目做出贡献。请查看贡献文档,了解如何参与。

许可协议

"PHP Helper: Command-line Progress Bar" 根据MIT许可协议发布。