Die KnpMenu-Bibliothek stellt objektorientierte Menüs für PHP bereit. Es wird vom KnpMenuBundle für Symfony verwendet, kann aber jetzt eigenständig verwendet werden.
KnpMenu verwendet Composer. Weitere Informationen finden Sie auf der Composer-Website.
Der einfache folgende Befehl installiert knp-menu
in Ihrem Projekt. Außerdem wird ein neuer Eintrag in Ihrer composer.json
hinzugefügt und auch die composer.lock
aktualisiert.
Komponist benötigt knplabs/knp-menu
KnpMenu folgt den PSR-4-Konventionsnamen für seine Klassen, was bedeutet, dass Sie
knp-menu
-Klassen problemlos in Ihren eigenen Autoloader laden können.
<?php// Mit Composer installierte Abhängigkeiten einschließenrequire 'vendor/autoload.php';use KnpMenuMenuFactory;use KnpMenuRendererListRenderer;$factory = new MenuFactory();$menu = $factory->createItem('My 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 $renderer->render($menu);
Das obige Menü würde den folgenden HTML-Code rendern:
<ul> <li class="first"><a href="/">Startseite</a> </li> <li class="current"><a href="#comments">Kommentare</a> </li> <li><a href="http://symfony.com/">Symfony</a> </li> <li class="last"><span>Alles Gute, tolle Entwickler</span> </li></ul>
Auf diese Weise können Sie endlich vermeiden, eine hässliche Vorlage zu schreiben, um das ausgewählte Element, das erste und das letzte Element, Untermenüs usw. anzuzeigen.
Der Großteil der Dokumentation befindet sich im
doc
-Verzeichnis.
Folgen Sie dem Tutorial in doc/01-Basic-Menus.md
und doc/02-Twig-Integration.md
um zu entdecken, wie KnpMenu Ihre Welt rocken wird!
Die gesamte verfügbare Dokumentation finden Sie unter doc/
.
Diese Bibliothek wird von folgenden Personen gepflegt (alphabetisch sortiert):
@derrabus
@garak
@stof
Dieses Bundle wurde ursprünglich von ioMenuPlugin portiert, einem Menü-Plugin für Symfony1. Es wurde seitdem von KnpLabs und der Symfony-Community entwickelt.