-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathnested-submenu.php
36 lines (31 loc) · 1.2 KB
/
nested-submenu.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
declare(strict_types=1);
use PhpSchool\CliMenu\CliMenu;
use PhpSchool\CliMenu\Builder\CliMenuBuilder;
require_once(__DIR__ . '/../vendor/autoload.php');
$itemCallable = function (CliMenu $menu) {
echo $menu->getSelectedItem()->getText();
};
$menu = (new CliMenuBuilder)
->setTitle('CLI Menu')
->addItem('First Item', $itemCallable)
->addItem('Second Item', $itemCallable)
->addLineBreak('-')
->addSubMenu('Options', function (CliMenuBuilder $b) {
$b->setTitle('CLI Menu > Options')
->addItem('First option', function (CliMenu $menu) {
echo sprintf('Executing option: %s', $menu->getSelectedItem()->getText());
})
->addSubMenu('Secret Options', function (CliMenuBuilder $b) {
$b->setTitle('CLI Menu > Options > Secret Options')
->addItem('First secret option', function (CliMenu $menu) {
echo sprintf('Executing secret option: %s', $menu->getSelectedItem()->getText());
})
->addLineBreak('-');
})
->addLineBreak('-');
})
->setWidth(70)
->setBackgroundColour('yellow')
->build();
$menu->open();