Skip to content

Commit c2adaff

Browse files
authored
Merge pull request #155 from php-school/simplify-builder
Refactor menu building process
2 parents 5909ec5 + f637104 commit c2adaff

File tree

12 files changed

+445
-445
lines changed

12 files changed

+445
-445
lines changed

UPGRADE.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ or backwards compatibility (BC) breakages occur.
88
### BC breaks
99

1010
* Class `PhpSchool\CliMenu\CliMenuBuilder` has been moved, use
11-
`PhpSchool\CliMenu\Builder\CliMenuBuilder` instead. The old class has been aliased for now, but will be removed in
12-
`3.1`.
11+
`PhpSchool\CliMenu\Builder\CliMenuBuilder` instead. Please migrate to the new namespace.
1312
* Removed `PhpSchool\CliMenu\Terminal` namespace, the code has been migrated to the `php-school/terminal` package and is
1413
largely modified.
1514
* Method `addSubMenu` in '\PhpSchool\CliMenu\Builder\CliMenuBuilder' has an additional required parameter

composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@
2727
"autoload" : {
2828
"psr-4" : {
2929
"PhpSchool\\CliMenu\\": "src"
30-
},
31-
"files": ["src/deprecated.php"]
30+
}
3231
},
3332
"autoload-dev": {
3433
"psr-4": { "PhpSchool\\CliMenuTest\\": "test/" }

examples/split-item.php

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?php
22

3+
use PhpSchool\CliMenu\Builder\SplitItemBuilder;
34
use PhpSchool\CliMenu\CliMenu;
45
use PhpSchool\CliMenu\Builder\CliMenuBuilder;
56

@@ -11,25 +12,26 @@
1112

1213
$menu = (new CliMenuBuilder)
1314
->setWidth(150)
14-
->addSplitItem()
15-
->addSubMenu('sub-menu-1', 'Sub Menu on a split item')
16-
->setTitle('Behold the awesomeness')
17-
->addItem('This is awesome', function() { print 'Yes!'; })
18-
->addSplitItem()
19-
->addItem('Split Item 1', function() { print 'Item 1!'; })
20-
->addItem('Split Item 2', function() { print 'Item 2!'; })
21-
->addItem('Split Item 3', function() { print 'Item 3!'; })
22-
->addSubMenu('sub-menu-nested-1', 'Split Item Nested Sub Menu')
23-
->addItem('One', function() { print 'One!'; })
24-
->addItem('Two', function() { print 'Two!'; })
25-
->addItem('Three', function() { print 'Three!'; })
26-
->end()
27-
->end()
28-
->end()
15+
->addSplitItem(function (SplitItemBuilder $b) use ($itemCallable) {
16+
$b->addSubMenu('Sub Menu on a split item', function (CliMenuBuilder $b) {
17+
$b->setTitle('Behold the awesomeness')
18+
->addItem('This is awesome', function() { print 'Yes!'; })
19+
->addSplitItem(function (SplitItemBuilder $b) {
20+
$b->addItem('Split Item 1', function() { print 'Item 1!'; })
21+
->addItem('Split Item 2', function() { print 'Item 2!'; })
22+
->addItem('Split Item 3', function() { print 'Item 3!'; })
23+
->addSubMenu('Split Item Nested Sub Menu', function (CliMenuBuilder $b) {
24+
$b->addItem('One', function() { print 'One!'; })
25+
->addItem('Two', function() { print 'Two!'; })
26+
->addItem('Three', function() { print 'Three!'; });
27+
});
28+
});
29+
})
2930
->addItem('Item 2', $itemCallable)
3031
->addStaticItem('Item 3 - Static')
31-
->addItem('Item 4', $itemCallable)
32-
->end()
32+
->addItem('Item 4', $itemCallable);
33+
})
3334
->build();
35+
3436

3537
$menu->open();

examples/submenu.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414
->addItem('First Item', $itemCallable)
1515
->addItem('Second Item', $itemCallable)
1616
->addLineBreak('-')
17-
->addSubMenu('sub-menu-1', 'Options')
18-
->setTitle('CLI Menu > Options')
19-
->addItem('First option', function (CliMenu $menu) {
20-
echo sprintf('Executing option: %s', $menu->getSelectedItem()->getText());
21-
})
22-
->addLineBreak('-')
23-
->end()
17+
->addSubMenu('Options', function (CliMenuBuilder $b) {
18+
$b->setTitle('CLI Menu > Options')
19+
->addItem('First option', function (CliMenu $menu) {
20+
echo sprintf('Executing option: %s', $menu->getSelectedItem()->getText());
21+
})
22+
->addLineBreak('-');
23+
})
2424
->setWidth(70)
2525
->setBackgroundColour('yellow')
2626
->build();

src/Builder/Builder.php

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/Builder/BuilderUtils.php

Lines changed: 0 additions & 117 deletions
This file was deleted.

0 commit comments

Comments
 (0)