PHPackages                             mrdatawolf/multiline-progressbar - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. mrdatawolf/multiline-progressbar

ActiveLibrary[CLI &amp; Console](/categories/cli)

mrdatawolf/multiline-progressbar
================================

Creates a group of commandline progressbars to interact with.

1.0.2(7y ago)06.5kMITPHPPHP ^7.0

Since Aug 24Pushed 7y ago1 watchersCompare

[ Source](https://github.com/mrdatawolf/MultilineProgressbar)[ Packagist](https://packagist.org/packages/mrdatawolf/multiline-progressbar)[ RSS](/packages/mrdatawolf-multiline-progressbar/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (3)Dependencies (1)Versions (7)Used By (0)

Laravel Multiline Progressbar creator
=====================================

[](#laravel-multiline-progressbar-creator)

*Display multiple progressbars and update them at the same time.*
-----------------------------------------------------------------

[](#display-multiple-progressbars-and-update-them-at-the-same-time)

### Use case:

[](#use-case)

*Display one or more progressbars in the console at the same time*

Composer Install
----------------

[](#composer-install)

Add the following to your `composer.json`

```
{
    "require": {
        "mrdatawolf/multiline-progressbar": "dev-master"
    }
}

```

### 5.1 Notes

[](#51-notes)

**This has only been tested on Laravel 5.1 but probably works with other versions**

It allows up to 3 rows of progressbars and a messagebar to be run as a group.

**Example**

```
$totalBars = 3;
$xMax = 3;
$yMax = ($totalBars > 1) ? 4 : 0;
$zMax = ($totalBars > 2) ? 10 : 0;
$totalYs=0;
$totalZs=0;
$this->progressBar = new MultilineProgressbar($this->output, 'Processing Events', '|', $xMax, $yMax, $zMax);
if($this->option('debug')) {
    $this->progressBar->debug();
}
$this->progressBar->start();
$this->progressBar->setMessage('Working thru ' . $xMax . ' primary blocks and '. $yMax . ' secondary blocks with ' . $zMax . ' atomic items','message');
for($x=1; $xprogressBar->setMessage('Working in main block '. ($x), 'progress');
    $this->progressBar->advance(['message','progress']);
    if($totalBars > 1) {
        for ($y = 1; $y progressBar->setMessage('Working in secondary group '.$totalYs,'progress2');
            $this->progressBar->advance(['progress2']);
            if($totalBars > 2) {
                for ($z = 1; $z progressBar->setMessage('Working thru ' . $xMax . ' primary blocks and '. $yMax . ' secondary blocks with ' . $zMax . ' atomic items - '. $mainMessageAddendum);
                    $totalZs++;
                    usleep(100000);
                    $this->progressBar->setMessageAndSpinAndAdvance('Working with atomic unit '.$totalZs, 'progress3');
                }
            }
            usleep(100000);
        }
    }
    usleep(100000);
}
$this->progressBar->finish();

```

The above will create 3 progressbars and a "message" bar above the progressbars. It will also put a "spinner" to the right of the message in the message bar.

**Sample Output**

```
Working thru 3 primary blocks and 4 secondary blocks with 10 atomic items -> | : 14 secs/14 secs 24.0 MiB
Working in main block 3 : 3/3 [============================] 100%
Working in secondary group 12 : 12/12 [============================] 100%
Working with atomic unit 120 : 120/120 [============================] 100%

```

**Special Thanks**

This project was made possible by [Let's Go Learn](http://letsgolearn.com/)

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity61

Established project with proven stability

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

2812d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c7c930d5a9b5d9147d455c684bc791256ab55f6ce74fa96bd0024fd64936b1ed?d=identicon)[mrdatawolf](/maintainers/mrdatawolf)

---

Tags

consolesymfonyhelperprogressoutput

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/mrdatawolf-multiline-progressbar/health.svg)

```
[![Health](https://phpackages.com/badges/mrdatawolf-multiline-progressbar/health.svg)](https://phpackages.com/packages/mrdatawolf-multiline-progressbar)
```

###  Alternatives

[nunomaduro/collision

Cli error handling for console/command-line PHP applications.

4.6k331.8M8.5k](/packages/nunomaduro-collision)[nunomaduro/laravel-console-task

Laravel Console Task is a output method for your Laravel/Laravel Zero commands.

2582.1M11](/packages/nunomaduro-laravel-console-task)[rahul900day/laravel-console-spinner

Laravel Console Spinner is a spinner output for Laravel command line.

76125.4k1](/packages/rahul900day-laravel-console-spinner)[phlib/console-process

Console implementation.

1833.5k2](/packages/phlib-console-process)[drupal/console-launcher

Drupal Console launcher

217.9k](/packages/drupal-console-launcher)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
