programster / cli-menu
适用于PHP 5.3+的CLI应用程序的命令行菜单代码
2.1.2
2022-02-04 17:12 UTC
Requires
- php: >=8.0.0
This package is auto-updated.
Last update: 2024-09-04 22:29:43 UTC
README
此软件包简化了在终端应用程序的CLI中创建菜单的过程。主要分为两种类型。
- 操作菜单 - 打印出选项列表,选项将触发回调执行某些操作。例如退出程序或处理文件。
- 值菜单 - 提示用户从有限集合中选择。例如输出本地文件列表,用户可以通过输入菜单选项索引而不是完整路径来选择文件。
安装
使用以下命令安装软件包:
composer require programster/cli-menu
示例代码
操作菜单
以下代码演示了您可以使用简单的闭包或可调用对象构建操作菜单
$overComplicatedPrintHelloWorldObject = new class { public function __invoke() { print PHP_EOL . "Hello world!" . PHP_EOL; } }; $exitCallback = function() { die("Goodbye then!" . PHP_EOL); }; $sayHelloWorldOption = new \Programster\CliMenu\MenuOption("Print hello world", $overComplicatedPrintHelloWorldObject); $exitOption = new \Programster\CliMenu\MenuOption("Exit", $exitCallback); $cliMenu = new Programster\CliMenu\ActionMenu("My Action Menu", $sayHelloWorldOption, $exitOption); while(true) { $cliMenu->run(); }
值菜单
以下是一个基本示例,展示了我们如何获取用户想要设置的秒数
$possibleValues = array( new Programster\CliMenu\ValueOption("Seconds in a day", (60 * 60 * 24)), new Programster\CliMenu\ValueOption("Seconds in a week", (60 * 60 * 24 * 52)), new Programster\CliMenu\ValueOption("Seconds in a year", (60 * 60 * 24 * 365)), ); $valueMenu = new Programster\CliMenu\ValueMenu("Pick your seconds amount", ...$possibleValues); $chosenValue = $valueMenu->run();