Skip to content

Commit 821a81a

Browse files
committed
Add example with nested submenu
1 parent f42edd5 commit 821a81a

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

examples/nested-submenu.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
use PhpSchool\CliMenu\CliMenu;
4+
use PhpSchool\CliMenu\CliMenuBuilder;
5+
6+
require_once(__DIR__ . '/../vendor/autoload.php');
7+
8+
$itemCallable = function (CliMenu $menu) {
9+
echo $menu->getSelectedItem()->getText();
10+
};
11+
12+
$menu = (new CliMenuBuilder)
13+
->setTitle('CLI Menu')
14+
->addItem('First Item', $itemCallable)
15+
->addItem('Second Item', $itemCallable)
16+
->addLineBreak('-')
17+
->addSubMenu('Options')
18+
->setTitle('CLI Menu > Options')
19+
->addItem('First option', function (CliMenu $menu) {
20+
echo sprintf('Executing option: %s', $menu->getSelectedItem()->getText());
21+
})
22+
->addSubMenu('Secret Options')
23+
->setTitle('CLI Menu > Options > Secret Options')
24+
->addItem('First secret option', function (CliMenu $menu) {
25+
echo sprintf('Executing secret option: %s', $menu->getSelectedItem()->getText());
26+
})
27+
->addLineBreak('-')
28+
->end()
29+
->addLineBreak('-')
30+
->end()
31+
->setWidth(70)
32+
->setBackgroundColour('yellow')
33+
->build();
34+
35+
$menu->open();

0 commit comments

Comments
 (0)