Добавить детей и братьев и сестер в KnpMenuBundle

Для моего приложения я создаю меню. Целью является:

  • Наличие главного меню в главном AppBundle
  • Другие связки смогут расширять главное меню (добавляя дочерние элементы и братьев и сестер)

Это должно быть похоже на архитектуру плагинов на основе пакета. На IRC кто-то предложил использовать KnpMenuBundle, поэтому я попробовал это. Теперь я застрял, потому что я не мог найти способ расширить главное меню в других пакетах.

Что необходимо в новом пакете, чтобы добавить детей в главное меню?

Это меню и сервисы, которые я создал до сих пор:

services:
app.menu_builder:
class: AppBundle\Menu\MenuBuilder
arguments: ["@knp_menu.factory"]

app.main_menu:
class: Knp\Menu\MenuItem
factory: ["@app.menu_builder", createMainMenu]
arguments: ["@request_stack"]
tags:
- { name: knp_menu.menu, alias: main }

Конструктор меню:

<?php

namespace AppBundle\Menu;use Knp\Menu\FactoryInterface;
use Symfony\Component\HttpFoundation\RequestStack;

class MenuBuilder
{
private $factory;

public function __construct(FactoryInterface $factory)
{
$this->factory = $factory;
}

public function createMainMenu(RequestStack $requestStack)
{
$menu = $this->factory->createItem('root');
$menu->setDisplay(false);

return $menu;
}
}

Новый AcmeBundle теперь сможет расширять главное меню. Как добавление детей в «корень». Как этого добиться?

Пожалуйста, дайте мне знать, если вам нужно больше кода.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]