w AdministrationBundle mam 3 klasy: NavigationMenu, NavigationMenuItem i NavigationMenuLoader. Klasa NavigationMenuLoader odpowiada za ładowanie menu z pliku YAML. Podczas parsowania tego pliku tworzy obiekty NavigationMenu i NavigationMenuItem. Mniej więcej wygląda to tak:
Zastanawiam się, czy powinienem te klasy rejestrować jako usługi. Gdybym tak zrobił musiałbym ustawić ich scope na prototype, a do NavigationMenuLoader przekazać container i odwoływać się na zasadzie:
$navigationMenu = new NavigationMenu(); // ... for(/* ... */) { $navigationMenuItem = new NavigationMenuItem(); $navigationMenuItem->setTitle($data['title']); $items[] = $navigationMenuItem; } // ... $navigationMenu->setItems($items);
$navigationMenu = $this->container->get('navigation_menu'); // ... for(/* ... */) { $navigationMenuItem = $this->container->get('navigation_menu_item'); $navigationMenuItem->setTitle($data['title']); $items[] = $navigationMenuItem; } // ... $navigationMenu->setItems($items);
Dodam, iż te klasy nie będą wykorzystywane w żadnym innym bundle.