tomsihap/console-select

symfony 的 console 组件的精美选择界面。

2.0.4 2020-10-09 12:00 UTC

This package is auto-updated.

Last update: 2024-09-19 18:13:44 UTC


README

symfony 的 console 组件的精美选择界面。

Scrutinizer Code Quality Code Coverage Build Status

gluten-free built-by-developers check-it-out

Sample

要求

本项目旨在使用以下框架之一运行

  • laravel 5.6+
  • symfony 5.0+
  • laravel-zero 5.6+

安装

composer require eddiriarte/console-select

在 Laravel/Laravel-Zero 上

SelectServiceProvider 添加到你的服务提供者列表中

// app.php
'providers' => [
    EddIriarte\Console\Providers\SelectServiceProvider::class,
],

在 Symfony 上

EddIriarte\Console\Traits\SelectableInputs 特性添加到你的命令类中

# importing : \EddIriarte\Console\Helpers\SelectionHelper
# pasing the input and output interfaces
$this->getHelperSet()->set(
  new SelectionHelper($this->input, $this->output)
);

复选框

当需要从用户那里获取多个答案时很有用。

$selected = $this->select(
  'Select characters that appeared in "Star Wars,  Episode I - The phantom menace"',
  [
    'Ahsoka Tano',
    'Anakin Skywalker',
    'Boba Fett',
    'Chewbacca',
    'Count Dooku',
    'Darth Maul',
    'Darth Vader',
    'Finn',
    'Han Solo',
    'Jabba the Hutt',
    'Jar Jar Binks',
    'Kylo Ren',
    'Lando Calrissian',
    'Luke Skywalker',
    'Mace Windu',
    'Obi-Wan Kenobi',
    'Padmé Amidala',
    'Sheev Palpatine',
    'Poe Dameron',
    'Princess Leia Organa',
    'Qui-Gon Jinn',
    'Rey',
    'Watto',
    'Yoda',
  ]
);

单选按钮

当需要用户从列表中选择一个答案时很有用。

$selected = $this->select(
  'What is the name of the ancient Jedi master that lives at the swamps of Dagobah',
  [
    'Ahsoka Tano',
    'Anakin Skywalker',
    'Boba Fett',
    'Chewbacca',
    'Count Dooku',
    'Darth Maul',
    'Darth Vader',
    'Finn',
    'Han Solo',
    'Jabba the Hutt',
    'Jar Jar Binks',
    'Kylo Ren',
    'Lando Calrissian',
    'Luke Skywalker',
    'Mace Windu',
    'Obi-Wan Kenobi',
    'Padmé Amidala',
    'Sheev Palpatine',
    'Poe Dameron',
    'Princess Leia Organa',
    'Qui-Gon Jinn',
    'Rey',
    'Watto',
    'Yoda',
  ],
  false // third argument(bool) that allows multiple selections (default: true)
);

待办事项

  • 处理用户中断,例如 Ctrl+C

MIT 许可证

版权 (c) 2018 Eduardo Iriarte

特此授予任何人无限制地使用本软件及其相关文档文件(“软件”)的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向获得软件的人提供此副本以供其使用,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,没有任何形式的明示或暗示保证,包括但不限于适销性、适用于特定目的和无侵犯性的保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式引起的,无论是源自、因涉及或与本软件的使用或其他方式有关。