alecrabbit/php-console-spinner

Extremely flexible spinner for [async] php cli applications

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

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