setMenus($menu); } } /** * @return MenuItemEntity[] */ public function getMenus() { return $this->menus; } /** * @return array */ public function toArray() { $menus = []; foreach ($this->menus as $menu) { $menus[] = $menu->toArray(); } return $menus; } /** * @return array */ public function toMenuList() { $menus = []; foreach ($this->menus as $menu) { $this->getItem($menu, $menus); } return $menus; } private function getItem(MenuItemEntity $menu, &$menus) { $menus[] = [ 'title' => $menu->getTitle(), 'uri' => $menu->getUri(), 'route' => $menu->getRoute() ]; foreach ($menu->getChildren() as $child) { $this->getItem($child, $menus); } return $menus; } public function addMenu(MenuItemEntity $menuItemEntity) { $this->menus[] = $menuItemEntity; } /** * @param mixed $menus */ public function setMenus($menus): void { $this->menus[] = new MenuItemEntity($menus); } }