/**
  * Register bindings in the container.
  *
  * @return void
  */
 public function boot()
 {
     View::composer('sections.left-sidebar-menu', function ($view) {
         // Default menu items
         $sidebarMenu = ['home' => ['title' => 'Home', 'href' => '/'], 'api_endpoints' => ['title' => 'API Endpoint Reference', 'href' => '/endpoint-reference'], 'object_models' => ['title' => 'Object Models', 'href' => '/object-models'], 'article1' => ['title' => 'User Guide', 'href' => '/article/user-guide'], 'article2' => ['title' => "Beginner's Tutorial", 'href' => '/article/beginners-tutorial'], 'article3' => ['title' => 'Authorization Guide', 'href' => '/article/authorization-guide'], 'article4' => ['title' => 'Change Log', 'href' => '/change-log']];
         // Populate Endpoint Reference menu item
         $sidebarMenu['api_endpoints']['sub_menu'] = [];
         foreach (ApiResource::all() as $resource) {
             $resourceMenuItem = ['title' => $resource->title, 'href' => '/endpoint-reference/resource/' . $resource->alias, 'sub_menu' => []];
             foreach ($resource->endpoints as $endpoint) {
                 array_push($resourceMenuItem['sub_menu'], ['title' => $endpoint->title, 'href' => '/endpoint-reference/endpoint/' . $endpoint->alias]);
             }
             array_push($sidebarMenu['api_endpoints']['sub_menu'], $resourceMenuItem);
         }
         // Mark selected menu items
         function markSelected(&$menuItems)
         {
             $selectedItems = 0;
             $uri = Request::path();
             foreach ($menuItems as &$menuItem) {
                 $selectedChildren = 0;
                 if ($uri == trim($menuItem['href'], "/")) {
                     $menuItem['class'] = 'selected';
                     $menuItem['open'] = true;
                     $selectedItems++;
                 }
                 if (isset($menuItem['sub_menu'])) {
                     if (!empty($menuItem['sub_menu'])) {
                         $selectedChildren += markSelected($menuItem['sub_menu']);
                     }
                 }
                 if ($selectedChildren > 0) {
                     $menuItem['class'] = 'child-selected';
                     $menuItem['open'] = true;
                 }
                 $selectedItems += $selectedChildren;
             }
             return $selectedItems;
         }
         markSelected($sidebarMenu);
         $view->with('sidebarMenu', $sidebarMenu);
     });
 }