depa / middleware-navigation
中间件导航是一个PSR-15中间件,为Zend Expressive应用程序提供导航功能
v0.2.7.2
2020-02-19 13:30 UTC
Requires
- knplabs/knp-menu: ^2.3
- psr/container: ^1.0
- psr/http-server-middleware: ^1.0
- zendframework/zend-servicemanager: ^3.4
README
安装
运行以下命令来安装此库
$ composer require depa/middleware-navigation
文档
安装模块后,您必须将导航中间件实现到您的管道中,因此您基本上在RouteMiddleware上方添加此行
$app->pipe(depa\NavigationMiddleware\Middleware\NavigationMiddleware::class);
要创建导航,请使用config文件夹中的navigation.global.php(将其放入config\autoload中)作为基本设置
菜单项的基本结构必须看起来像这样
'{navigation_Name}' => [ 'route' => '{route_name}', //route-name which is set in routes.php ]
如果您想为菜单项添加属性(到ul元素),请这样做
'{navigation_Name}' => [ 'attributes' => [...], //possibilitys in attributes-table described (at the bottom of the doc) ]
如果您想为菜单项添加链接属性(到a元素),请这样做
'{navigation_Name}' => [ 'linkAttributes' => [...], //possibilitys in link-attributes-table described (at the bottom of the doc) ]
如果您想为菜单项添加子项,请这样做(您可以使用任意数量的子项)
'{navigation_Name}' => [ 'childs' => [...], //build the same as a normal menu-item ]
如果您想强制链接方向到某个项,请添加此内容
'{navigation_Name}' => [ 'uri' => '{https://www.designpark.de}', ]
包含任何给定示例的菜单项可能看起来像这样
'{navigation_Name}' => [ 'route' => '{route_name}', 'uri' => '{https://www.designpark.de}', 'attributes' => [ 'id' => '{some_id}', 'class' => ['{class1} {class2}'], ], 'linkAttributes' => [ 'id' => '{some_id}', 'class' => '{class_1} {class2}', ], 'childs' => [ '{childNavigation_Name}' => [ 'route' => '{route_name}', 'uri' => '{https://www.designpark.de}', 'attributes' => [], 'linkAttributes' => [], 'childs' => [], ] ] ]
上述示例将输出以下HTML
<ul>
<li id="{some_id} class="{class1 class2} first last">
<a href="{https://www.designpark.de}">{navigationName}</a>
<ul class="menu_level_1">
<li class="first last">
<a href="{https://www.designpark.de}">{childNavigationName}</a>
</li>
</ul>
</li>
</ul>
这将看起来像这样
- {navigationName}
- {childNavigationName}
您可以使用的属性及其功能
您可以使用的链接属性及其功能
我们没有列出每个链接/属性,请参阅knpLabs/KnpMenu获取更多信息!
鸣谢
此包受到Zend Framework的启发。它由designpark开发。
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。