A biblioteca KnpMenu fornece menus orientados a objetos para PHP. Ele é usado pelo KnpMenuBundle para Symfony, mas agora pode ser usado de forma independente.
KnpMenu usa o Composer, verifique o site do compositor para obter mais informações.
O simples comando a seguir instalará knp-menu
em seu projeto. Ele também adiciona uma nova entrada em seu composer.json
e atualiza o composer.lock
também.
compositor requer knplabs/knp-menu
KnpMenu segue os nomes da convenção PSR-4 para suas classes, o que significa que você pode integrar facilmente o carregamento de classes
knp-menu
em seu próprio autoloader.
<?php// Inclui dependências instaladas com o compositorrequire 'vendor/autoload.php';use KnpMenuMenuFactory;use KnpMenuRendererListRenderer;$factory = new MenuFactory();$menu = $factory->createItem('Meu menu');$menu- >addChild('Home', ['uri' => '/']);$menu->addChild('Comments', ['uri' => '#comments']);$menu->addChild('Symfony', ['uri' => 'http:// symfony.com/']);$menu->addChild('Happy Awesome Developers');$renderer = new ListRenderer(new KnpMenuMatcherMatcher());echo $renderizador->renderizar($menu);
O menu acima renderizaria o seguinte HTML:
<ul> <li class="first"><a href="/">Página inicial</a> </li> <li class="current"><a href="#comments">Comentários</a> </li> <li><a href="http://symfony.com/">Symfony</a> </li> <li class="last"><span>Desenvolvedores incríveis e felizes</span> </li></ul>
Desta forma você pode finalmente evitar escrever um modelo feio para mostrar o item selecionado, o primeiro e o último item, submenus, ...
A maior parte da documentação pode ser encontrada no diretório
doc
.
Siga o tutorial em doc/01-Basic-Menus.md
e doc/02-Twig-Integration.md
para descobrir como o KnpMenu irá abalar o seu mundo!
Encontre toda a documentação disponível em doc/
.
Esta biblioteca é mantida pelas seguintes pessoas (classificadas em ordem alfabética):
@derrabus
@garak
@stof
Este pacote foi originalmente portado do ioMenuPlugin, um plugin de menu para o symfony1. Desde então, foi desenvolvido pelo KnpLabs e pela comunidade Symfony.