Symfony2 – Installer KnpMenuBundle

juillet 26, 2015 6:13 Publié par Laissez vos commentaires

Bonjour,

Dans ce tuto, nous allons apprendre à créer un menu en tant que service à l’aide du bundle {KnpMenuBundle} pour Symfony2 :

Installation de KnpMenuBundle :

c:\wamp\www\symfony2> composer require knplabs/knp-menu-bundle "~2"

Déclaration du bundle dans le fichier app/ AppKernel.php
Ajouter la ligne suivante :

new Knp\Bundle\MenuBundle\KnpMenuBundle(),

Fichier app/config/config.yml
knp_menu:
twig:
template: knp_menu.html.twig
templating: false
default_renderer: twig

Configuration du Builder :

Créez ensuite un dossier menu à la racine de votre Bundle (MainBundle dans notre cas) dans lequel nous allons placer un fichier MenuBuilder.php :

factory = $factory;
}

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

$menu->addChild('Home', array('route' => 'homepage'));
$menu['Home']->addChild('Menu1', array('route' => '_mapage1'));
$menu['Home']->addChild('Menu2', array('route' => '_mapage2'));

$menu->addChild('Categorie1', array('route' => 'homepage'));
$menu['Categorie1']->addChild('Menu1', array('route' => 'fos_user_security_login'));
$menu['Categorie1']->addChild('Menu2', array('route' => 'fos_user_security_logout'));

return $menu; }
}

Vous pouvez connaître les identifiants de toutes les routes à l’aide de la commande suivante :

php app/console debug:router

Configuration du service :

Fichier app/config/services.yml


services:
app.menu_builder:
class: tuto\MainBundle\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 }

Configuration du Template twig :

Placez enfin le code suivant à l’emplacement souhaité de votre Template twig:
{{ knp_menu_render('main') }}

{Lien vers la doc officielle (en anglais) :
http://symfony.com/doc/master/bundles/KnpMenuBundle/index.html}

Classés dans :

Cet article a été écrit par admin

Laisser un commentaire