php-spinner/README.md

1.3 KiB

Console Spinners

Spinners for the console.

Install

Recommended is to install using composer. Add the repository to your global ~/.config/composer/config.json file:

{
  "repositories": [
    {
      "type": "composer",
      "url": "https://dev.noccylabs.info/api/packages/noccy/composer"
    }
  ]
}

Then add the package as a dependency:

$ composer require noccylabs/spinner

Usage

use NoccyLabs\Spinner\Spinner;
use NoccyLabs\Spinner\Style;

// Create a spinner with default options
$spinner = new Spinner();

// Set the default options, will apply to everything created after
Spinner::setDefaultStyle(Style\BrailleDotStyle::class);
Spinner::setDefaultFps(10);
$spinner = new Spinner();

// Or create a custom spinner
$spinner = new Spinner(MyCustomSpinnerStyle::class);
$spinner = new Spinner(FancyStyle::class, fps:20);

// String casting hides all the magic! Just cast the spiner to a string,
// and the frames will advance to match the framerate as long as it is
// rendered at least as often as its set framerate
while(true) {
    echo "\r $spinner ";
    usleep(10000);
}

Included styles

Style Width Notes
BrailleDotStyle 1 A snake chasing its tail, new "docker compose" style
RollingBallStyle 1 A rolling ball, "symfony new" style
SpinnerStyle 2 four-part spinner, 2 characters wide