knplabs / knp-menu
面向对象菜单库
v3.5.0
2024-03-23 15:35 UTC
Requires
- php: ^8.1
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6
- psr/container: ^1.0 || ^2.0
- symfony/http-foundation: ^5.4 || ^6.0 || ^7.0
- symfony/phpunit-bridge: ^7.0
- symfony/routing: ^5.4 || ^6.0 || ^7.0
- twig/twig: ^2.16 || ^3.0
Suggests
- twig/twig: for the TwigRenderer and the integration with your templates
Conflicts
- twig/twig: <1.42.3 || >=2,<2.9
This package is auto-updated.
Last update: 2024-09-03 09:04:09 UTC
README
KnpMenu库为PHP提供面向对象的菜单。它由Symfony的KnpMenuBundle使用,但现在可以独立使用。
安装
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.md
和doc/02-Twig-Integration.md
中的教程进行操作,以发现KnpMenu将如何震撼您的世界!
所有可用文档均可在doc/
中找到。
维护者
以下人员(按字母顺序排序)维护此库
致谢
此捆绑包最初是从ioMenuPlugin移植的,它是用于symfony1的菜单插件。自那时起,它由KnpLabs和Symfony社区开发。