rahul900day/laravel-console-spinner

Laravel Console Spinner is a spinner output for Laravel command line.

1.1.2 2024-02-29 08:20 UTC

This package is auto-updated.

Last update: 2024-03-30 07:53:36 UTC


README

Laravel Console Spinner was created by Rahul Dey. It is just a custom Progress Bar inspired by icanhazstring/symfony-console-spinner.

StyleCI Status Total Downloads Version PHP Version Require

Installation

Requires PHP 7.3+

Via Composer:

composer require rahul900day/laravel-console-spinner

You can publish the config file with:

php artisan vendor:publish --tag=console-spinner-config

This is the contents of the published config file:

return [
    'chars' => ['⠏', '⠛', '⠹', '⢸', '⣰', '⣤', '⣆', '⡇'],
];

Usage

class SimpleLaravelCommand extends Command
{
    /**
     * Execute the console command.
     *
     * @return void
     */
    public function handle()
    {
        $spinner = $this->spinner($users->count());
        $spinner->setMessage('Loading...');
        $spinner->start();
        
        foreach ($users as $user) {
            // Do your stuff...
            
            $spinner->advance();
        }
        $spinner->finish();
    }
}

The $spinner is compatible with Symfony ProgressBar, so you can run any method of this class.

Or you can also use with withSpinner method by giving an iterable.

$this->withSpinner(User::all(), function($user) {
    // Do your stuff with $user
}, 'Loading...');

Licence

This package is released under the MIT license.