alecrabbit/php-console-spinner

Extremely flexible spinner for [async] php cli applications

Maintainers

πŸ‘ alecrabbit

Package info

github.com/alecrabbit/php-console-spinner

pkg:composer/alecrabbit/php-console-spinner

Statistics

Installs: 37 759

Dependents: 3

Suggesters: 0

Stars: 240

Open Issues: 5

1.0.0-ALPHA.7+BUILD.0 2023-12-04 10:41 UTC

Requires

Suggests

Provides

None

Conflicts

None

Replaces

None


README

πŸ‘ Logo

Spinner - your task is running

πŸ‡ΊπŸ‡¦ 🏡️ PHP Console Spinner

πŸ‘ demo

πŸ‘ PHP Version
πŸ‘ Tests Status

πŸ‘ Build Status
πŸ‘ Scrutinizer Code Quality
πŸ‘ Code Coverage

πŸ‘ Latest Stable Version
πŸ‘ Packagist Pre Release Version
πŸ‘ Latest Unstable Version

πŸ‘ License

Old version 0.55.0 is 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