knplabs/knp-menu

面向对象菜单库

v3.5.0 2024-03-23 15:35 UTC

README

KnpMenu库为PHP提供面向对象的菜单。它由Symfony的KnpMenuBundle使用,但现在可以独立使用。

Build Status Latest Stable Version Latest Unstable Version Gitter chat

安装

KnpMenu使用Composer,请访问composer网站获取更多信息。

以下简单的命令将安装knp-menu到您的项目中。它还会在您的composer.json中添加新条目并更新composer.lock

composer require knplabs/knp-menu

KnpMenu遵循PSR-4约定名称,这意味着您可以轻松地将knp-menu类加载集成到自己的自动加载器中。

入门指南

<?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', ['uri' => '/']);
$menu->addChild('Comments', ['uri' => '#comments']);
$menu->addChild('Symfony', ['uri' => 'http://symfony.com/']);
$menu->addChild('Happy Awesome Developers');

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

上述菜单将渲染以下HTML

<ul>
  <li class="first">
    <a href="/">Home</a>
  </li>
  <li class="current">
    <a href="#comments">Comments</a>
  </li>
  <li>
    <a href="http://symfony.com/">Symfony</a>
  </li>
  <li class="last">
    <span>Happy Awesome Developers</span>
  </li>
</ul>

这样,您最终可以避免编写难看的模板来显示所选项目、第一个和最后一个项目、子菜单等。

大部分文档可以在doc目录中找到。

接下来做什么?

请按照doc/01-Basic-Menus.mddoc/02-Twig-Integration.md中的教程进行操作,以发现KnpMenu将如何震撼您的世界!

所有可用文档均可在doc/中找到。

维护者

以下人员(按字母顺序排序)维护此库

致谢

此捆绑包最初是从ioMenuPlugin移植的,它是用于symfony1的菜单插件。自那时起,它由KnpLabsSymfony社区开发。