Julio Montoya ce8571e88a Updating vendors vor 11 Jahren
..
doc ce8571e88a Updating vendors vor 11 Jahren
src ce8571e88a Updating vendors vor 11 Jahren
tests ce8571e88a Updating vendors vor 11 Jahren
.gitignore 5f7d19f3e7 Updating vendors vor 11 Jahren
.travis.yml 36ef351507 updating vendors vor 11 Jahren
CHANGELOG.md a36c89bb3a Updating vendors vor 11 Jahren
LICENSE 639c430016 Updating vendors vor 11 Jahren
README.markdown a36c89bb3a Updating vendors vor 11 Jahren
composer.json 639c430016 Updating vendors vor 11 Jahren
phpunit.xml.dist 639c430016 Updating vendors vor 11 Jahren

README.markdown

KnpMenu

The KnpMenu library provides object oriented menus for PHP 5.3. It is used by the KnpMenuBundle for Symfony2 but can now be used stand-alone.

Build Status Latest Stable Version Latest Unstable Version Gitter chat

Installation

KnpMenu uses Composer, please checkout the composer website for more information.

The simple following command will install knp-menu into your project. It also add a new entry in your composer.json and update the composer.lock as well.

$ composer require 'knplabs/knp-menu:2.0.*@dev'

KnpMenu follows the PSR-0 convention names for its classes, which means you can easily integrate knp-menu classes loading in your own autoloader.

Getting Started

<?php

// Include dependencies installed with composer
require 'vendor/autoload.php';

use Knp\Menu\MenuFactory;
use Knp\Menu\Renderer\ListRenderer;

$factory = new MenuFactory();
$menu = $factory->createItem('My menu');
$menu->addChild('Home', array('uri' => '/'));
$menu->addChild('Comments', array('uri' => '#comments'));
$menu->addChild('Symfony2', array('uri' => 'http://symfony-reloaded.org/'));
$menu->addChild('Coming soon');

$renderer = new ListRenderer(new \Knp\Menu\Matcher\Matcher());
echo $renderer->render($menu);

The above menu would render the following HTML:

<ul>
  <li class="first">
    <a href="/">Home</a>
  </li>
  <li class="current">
    <a href="#comments">Comments</a>
  </li>
  <li>
    <a href="http://symfony-reloaded.org/">Symfony2</a>
  </li>
  <li class="last">
    <span>Coming soon</span>
  </li>
</ul>

This way you can finally avoid writing an ugly template to show the selected item, the first and last items, submenus, ...

The bulk of the documentation can be found in the doc directory.

What now?

Follow the tutorial in doc/01-Basic-Menus.markdown and doc/02-Twig-Integration.markdown to discover how KnpMenu will rock your world!

Credits

This bundle was originally ported from ioMenuPlugin, a menu plugin for symfony1. It has since been developed by KnpLabs and the Symfony community.