Add "devitek/menu": "^2.0.0"
to your composer.json by running :
composer require devitek/menu
And select version : 2.*
You can use it like this :
<?php
$html = (new Devitek\Menu\Renderer\TwitterBootstrap\Navbar())
->translateWith(new Devitek\Menu\Translator\LaravelTranslator())
->resolveUrlWith(new Devitek\Menu\Resolver\LaravelResolver())
->isFluid()
->handleResponsive()
->isFixedTop()
->withBrand('My super project', '/')
->onTheLeft((new Menu())->with([
(new IconLink('pages.home.link'))->withDestination('home')->withIcon('glyphicon glyphicon-home'),
]))
->onTheRight((new Menu())->with([
(new Devitek\Menu\Items\IconGroup('pages.account.link'))->withIcon('glyphicon glyphicon-user')->need([
function () { return ! Auth::guest(); }
]) ->withUnder([
(new Devitek\Menu\Items\IconLink('pages.administration.utilisateurs.lien'))->withDestination('administration.utilisateurs')->withIcon('glyphicon glyphicon-cog'),
]),
]))
->render();
In this case, I use the translator provider and route resolver for laravel.
Base :
- Item
Classes :
- Link
- IconLink
- Group
- IconGroup
- Separator
Trait :
- WithIcon
Base :
- Renderer
Twitter Bootstrap :
- Navbar
Interface :
- ResolverInterface
Laravel :
- LaravelResolver
Interface :
- TranslatorInterface
Laravel :
- LaravelTranslator
- More integrations (Zf2, Symfony2...)
- More doc
- More examples
Enjoy it ! Feel free to fork :) !