2022-09-21 23:49:58 +00:00
|
|
|
# Console Spinners
|
|
|
|
|
|
|
|
Spinners for the console.
|
|
|
|
|
|
|
|
## Install
|
|
|
|
|
2022-09-22 00:27:14 +00:00
|
|
|
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
|
|
|
|
```
|
|
|
|
|
2022-09-21 23:49:58 +00:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
```php
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
```
|
2022-09-22 00:27:14 +00:00
|
|
|
|
|
|
|
### 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
|