php-spinner/README.md

62 lines
1.3 KiB
Markdown

# 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
```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);
}
```
### 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