Symfony2 – Installer KnpMenuBundle
juillet 26, 2015 6:13 Laissez vos commentairesBonjour,
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 :Symfony
Cet article a été écrit par admin