2017 © Pedro Peláez
 

library laravel-console-menu

Laravel Console Menu is an output method for your Laravel/Laravel Zero commands.

image

nunomaduro/laravel-console-menu

Laravel Console Menu is an output method for your Laravel/Laravel Zero commands.

  • Thursday, May 17, 2018
  • by nunomaduro
  • Repository
  • 14 Watchers
  • 497 Stars
  • 7,773 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 14 Forks
  • 4 Open issues
  • 6 Versions
  • 52 % Grown

The README.md

, (*1)

Static Analysis Latest Stable Version License , (*2)

About Laravel Console Menu

Laravel Console Menu was created by, and is maintained by Nuno Maduro, and is a php-school/cli-menu wrapper for Laravel Console Commands., (*3)

Installation

Requires PHP 8.1+, (*4)

Require Laravel Console Menu using Composer:, (*5)

composer require nunomaduro/laravel-console-menu

Usage

Quick Setup

class MenuCommand extends Command
{
    /**
     * Execute the console command.
     *
     * @return void
     */
    public function handle()
    {
        $option = $this->menu('Pizza menu', [
            'Freshly baked muffins',
            'Freshly baked croissants',
            'Turnovers, crumb cake, cinnamon buns, scones',
        ])->open();

        $this->info("You have chosen the option number #$option");
    }
}

Setup with a question

, (*6)

class MenuCommand extends Command
{
    /**
     * Execute the console command.
     *
     * @return void
     */
    public function handle()
    {
        $option = $this->menu('Pizza menu')
                    ->addOption('mozzarella', 'Mozzarella')
                    ->addOption('chicken_parm', 'Chicken Parm')
                    ->addOption('sausage', 'Sausage')
                    ->addQuestion('Make your own', 'Describe your pizza...')
                    ->addOption('burger', 'Prefer burgers')
                    ->setWidth(80)
                    ->open();

        $this->info("You have chosen the text option: $option");
    }
}

Setup with advanced option, in this case, a password

, (*7)

class MenuCommand extends Command
{
    /**
     * Execute the console command.
     *
     * @return void
     */
    public function handle()
    {
        $menu = $this->menu('Pizza menu')
                    ->addOption('mozzarella', 'Mozzarella')
                    ->addOption('chicken_parm', 'Chicken Parm')
                    ->addOption('sausage', 'Sausage')
                    ->addQuestion('Make your own', 'Describe your pizza...');

        $itemCallable = function (CliMenu $cliMenu) use ($menu) {
            $cliMenu->askPassword()
                ->setValidator(function ($password) {
                    return $password === 'secret';
                })
                ->setPromptText('Secret password?')
                ->ask();

            $menu->setResult('Free spice!');

            $cliMenu->close();
        };
        $menu->addItem('Add extra spice for free (password needed)', $itemCallable);


        $option = $menu->addOption('burger', 'Prefer burgers')
            ->setWidth(80)
            ->open();

        $this->info("You have chosen the text option: $option");
    }
}

Appearance

Available colors: black, red, green, yellow, blue, magenta, cyan, white., (*8)

  $this->menu($title, $options)
      ->setForegroundColour('green')
      ->setBackgroundColour('black')
      ->setWidth(200)
      ->setPadding(10)
      ->setMargin(5)
      ->setExitButtonText("Abort") // remove exit button with ->disableDefaultItems()
      ->setTitleSeparator('*-')
      ->addLineBreak('<3', 2)
      ->addStaticItem('AREA 2')
      ->open();

Check out the full documentation here., (*9)

Contributing

Thank you for considering to contribute to Laravel Console Menu. All the contribution guidelines are mentioned here., (*10)

You can have a look at the CHANGELOG for constant updates & detailed information about the changes. You can also follow the twitter account for latest announcements or just come say hi!: @enunomaduro, (*11)

Support the development

Do you like this project? Support it by donating, (*12)

License

Laravel Console Menu is an open-sourced software licensed under the MIT license., (*13)

The Versions

17/05 2018

dev-master

9999999-dev

Laravel Console Menu is an output method for your Laravel/Laravel Zero commands.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Nuno Maduro

laravel php console command-line cli symfony artisan laravel-zero

08/05 2018

v1.0.3

1.0.3.0

Laravel Console Menu is an output method for your Laravel/Laravel Zero commands.

  Sources   Download

MIT

The Requires

 

by Nuno Maduro

laravel php console command-line cli symfony artisan laravel-zero

04/03 2018

v1.0.2

1.0.2.0

Laravel Console Menu is an output method for your Laravel/Laravel Zero commands.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Nuno Maduro

laravel php console command-line cli symfony artisan laravel-zero

03/02 2018

v1.0.1

1.0.1.0

Laravel Console Menu is a output method for your Laravel/Laravel Zero commands.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Nuno Maduro

laravel php console command-line cli symfony artisan laravel-zero

28/01 2018

dev-analysis-q2oVRl

dev-analysis-q2oVRl

Laravel Console Menu is a output method for your Laravel/Laravel Zero commands.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Nuno Maduro

laravel php console command-line cli symfony artisan laravel-zero

28/01 2018

v1.0.0

1.0.0.0

Laravel Console Menu is a output method for your Laravel/Laravel Zero commands.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Nuno Maduro

laravel php console command-line cli symfony artisan laravel-zero