aeno/php-slickprogress

轻量级但美观的 CLI 进度条和旋转器

1.0.1 2021-06-17 11:20 UTC

This package is auto-updated.

Last update: 2024-09-17 19:10:50 UTC


README

Latest release License: MPL-2.0

轻量级但美观的 PHP 进度条和旋转器。

无依赖项

  • 与 PHP 7.1+ 兼容

安装

composer require aeno/php-slickprogress

用法

简单进度

Simple progress output

$progress = new \Aeno\SlickProgress\Progress();
$progress->start(50);

for ($i = 0; $i < 50; $i++) {
    $progress->advance();
    usleep(25000);
}

$progress->finish();

详细进度

Detailed progress output

$theme = new \Aeno\SlickProgress\Theme\Simple();
$theme->showStep(true);
$theme->showPercent(true);

$progress = new \Aeno\SlickProgress\Progress($theme);
$progress->start(200);

for ($i = 0; $i < 200; $i++) {
    $progress->advance();
    usleep(25000);
}

$progress->finish();

无限进度

Indefinite progress output

$progress = new \Aeno\SlickProgress\Progress();
$progress->start(-1);

for ($i = 0; $i < 200; $i++) {
    $progress->advance();
    usleep(25000);
}

$progress->finish();

旋转器

Spinner output

$foobar = new \Foobar();    // your business logic

$theme = new \Aeno\SlickProgress\Theme\Snake();
$theme->setColorType(\Aeno\SlickProgress\Colors::COLOR_TYPE_ANSI256);

$progress = new \Aeno\SlickProgress\Progress($theme);
$progress->start(-1);

for ($i = 0; $i < 100; $i++) {
    if ($foobar->hasNewStatus()) {
        $progress->setStatusMessage($foobar->getCurrentStatus());
    }

    $progress->advance();
    usleep(50000);
}

$progress->finish(\Aeno\SlickProgress\ThemeInterface::FINISH_TYPE_MESSAGE, '✅ Done!');

许可证

php-slickprogress 使用 Mozilla 公共许可证,版本 2.0 许可。