PhpSchool\CliMenu\CliMenuBuilder::build PHP Метод

build() публичный Метод

public build ( ) : CliMenu
Результат CliMenu
    public function build()
    {
        $this->isBuilt = true;
        $mergedItems = $this->disableDefaultItems ? $this->menuItems : array_merge($this->menuItems, $this->getDefaultItems());
        $menuItems = $this->buildSubMenus($mergedItems);
        $this->style['displaysExtra'] = $this->itemsHaveExtra($menuItems);
        $menu = new CliMenu($this->menuTitle ?: false, $menuItems, $this->terminal, $this->getMenuStyle());
        foreach ($this->subMenus as $subMenu) {
            $subMenu->setParent($menu);
        }
        return $menu;
    }

Usage Example

Пример #1
0
 public function testAddSubMenu()
 {
     $builder = new CliMenuBuilder();
     $builder->disableDefaultItems();
     $subMenuBuilder = $builder->addSubMenu('sub-menu');
     $menu = $builder->build();
     $this->checkItems($menu, [['class' => MenuMenuItem::class]]);
     $this->assertInstanceOf(CliMenuBuilder::class, $subMenuBuilder);
     $this->assertNotSame($subMenuBuilder, $builder);
     $this->assertSame($builder, $subMenuBuilder->end());
 }