PHP 编写控制台菜单 Laravel Console Menu

MIT
PHP
跨平台
2019-05-17
红薯

Laravel Console Menu 可以让你很方便的使用 PHP 开发控制台下的菜单功能。如下图所示:

 

安装

要求 PHP 7.0+

使用 Composer 引入 Laravel Console Menu

composer require nunomaduro/laravel-console-menu

使用

快速设置

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");
    }
}

设置问题

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");
    }
}

设置高级选项,例如密码

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");
    }
}

外观

提供的颜色包括 blackredgreenyellowbluemagentacyanwhite.

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

 

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

Laravel框架定时任务2种实现方式示例

本文实例讲述了Laravel框架定时任务2种实现方式。分享给大家供大家参考,具体如下: 第一种 1、生成一个commands文件 > php artisan make:command test 2、打开文件进行修改 laravel\App\Co...

2018/12/10 09:09
15
0
基于 Pusher 驱动的 Laravel 事件广播(上)

说明:本文主要来源于Building Real-Time Laravel Apps with Pusher。 本文主要介绍使用Pusher包来开发带有实时通信功能的Laravel APP,整个教程只需要两个小时就能顺利走一遍。同时,作者会...

2016/10/10 11:43
111
0
Laravel 5.5.* Bug一枚

``` $ php artisan preset none Frontend scaffolding removed successfully. array@DESKTOP-I71KRS4 MINGW64 /d/Code/arraytutor$ php artisan preset vue [ErrorException] copy(D:\Code\a...

2017/10/20 09:37
6
0
分析,理解,优化Laravel

使用Laravel接近两年了, 从4.2到现在的5.2。大多数情况下,Laravel都能很好的支撑我们的系统。不管你是否使用或打算使用, 了解Laravel的设计对于提高程序水平也很有帮助。...

2016/04/19 16:54
144
1
基于Laravel Task-Scheduler定时发送邮件小程序

说明:本文主要学习Laravel的Artisan Command、Task Scheduler和Mail相关知识。做一个简单的小demo,用来定时发邮件。。走完整个流程最多只需一小时。同时,会将开发过程中的一些截图和代码黏...

2016/10/21 17:17
107
0
laravel中redis的使用

laravel,redis

2016/05/18 14:51
1K
2
公用Laravel 5框架与公用库架构

通常很多项目都会依赖同一个的框架,还会共用很多代码库,手动复制粘贴这些文件到每个项目文件夹显然很伤害键盘,特别当项目多了之后,手动管理各种不同版本的库极容易精神分裂。为避免让搬砖...

2015/06/06 17:26
230
0
关于 Laravel 的维护模式

关于 Laravel 维护模式的一些研究

2015/07/26 02:19
35
0
Firebug Tutorial – Overview of Firebug

Firebug Tutorial – Overview of Firebug September 8, 2007 A few words from me It has been over 1 year that I’m using Firebug in web development. I found it very useful. I’m r...

2010/08/11 00:39
173
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部