alecrabbit/php-console-spinner
Extremely flexible spinner for [async] php cli applications
Maintainers
Requires
- php: >=8.2
- psr/container: ^2.0
Requires (Dev)
Suggests
- ext-mbstring: For multibyte Unicode string functionality.
- ext-pcntl: For signal handling support.
- react/event-loop: For ReactPHP event-loop support.
- revolt/event-loop: For Revolt event-loop support.
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-06-08 16:50:12 UTC
README
Spinner - your task is running
πΊπ¦ π΅οΈ PHP Console Spinner
π PHP Version
π Tests Status
π Build Status
π Scrutinizer Code Quality
π Code Coverage
π Latest Stable Version
π Packagist Pre Release Version
π Latest Unstable Version
Old version
0.55.0is available in branch 0.55.x
New version 1.0.0
- βΌοΈ ATTENTION βΌοΈ Documentation is a bit clumsy at the moment and CAN BE MISLEADING
- WIP
- βΌοΈ API is subject to change until
1.0.0-BETA.0- is intended to be used with event loop (see limitations)
Installation
composer require alecrabbit/php-console-spinner
Quick start (asynchronous)
use AlecRabbit\Spinner\Facade; // ... $spinner = Facade::createSpinner(); // that's basically it :)
Fully working examples can be found in example directory
For more information see Usage
Why?
Main purpose of this library is to provide a simple way to show spinner in console applications (mainly long-running ones). Spinner could be an indicator of running task. For more information see Features and Examples.
alecrabbit/php-console-spinner-extras library provides additional components to extend functionality:
- show progress of running task
- messages of some sort, like status messages
- additional spinners
Features
See Features and limitations for more details
| Feature | |
|---|---|
| Extremely flexible | π’οΈ οΈ |
| "Zero" dependencies οΈ | π’οΈ * |
| Asynchronous | π’οΈ οΈ |
| Synchronous | π’οΈ οΈ |
| AutoStart (async) | π’οΈ οΈ |
| Signal handling (async) | π’οΈ οΈ |
| Cursor auto hide/show | π’οΈ οΈ |
"Zero" dependencies
"Zero" dependencies mode means that the library does not require any additional dependencies to work. The only exception
is psr/container. That's why zero is in quotes.
"require": { "php": ">=8.2", "psr/container": "^2.0" },
Links
- Inspired by sindresorhus/cli-spinners
