Simple package to generate menu.

1.1.0 2024-02-14 07:17 UTC

This package is auto-updated.

Last update: 2024-04-14 07:44:10 UTC


README

This package allows you to add simple and easy menu management to your project. Supports nested menu items.

Installation

composer require vienasbaitas/menu:^1.0

Usage

In order to use menu you need to create menu instance, after that just push new menu items to it.

$menu = new \VienasBaitas\Menu\Menu();

$menu->option('admin', true);

$menu->item('Dashboard')->path('/dashboard')->active()->option('auth', true);
$menu->item('Settings')->path('/settings')->order(0);
$menu->item('Blog')->path('/blog')->target(\VienasBaitas\Menu\MenuItem::TARGET_BLANK);

After menu has been initialized you can return whole menu object to your view, alternatively you can use built-in array renderer to render your menu as an array.

$renderer = new \VienasBaitas\Menu\Renderers\ArrayRenderer();

$asArray = $renderer->render($menu);

Available methods

VienasBaitas\Menu\Menu

Method Description
options(array $options): VienasBaitas\Menu\Menu Set menu instance options.
option($key, $value): VienasBaitas\Menu\Menu Set menu instance option.
item(string $title): VienasBaitas\Menu\MenuItem Returns existing or creates a new item with given title.

VienasBaitas\Menu\MenuItem

Method Description
path(?string $path): VienasBaitas\Menu\MenuItem Assigns path to menu item.
active(): VienasBaitas\Menu\MenuItem Marks menu item as active.
inactive(): VienasBaitas\Menu\MenuItem Marks menu item as inactive.
order(int $order): VienasBaitas\Menu\MenuItem Sets menu item order.
target(?string $target): VienasBaitas\Menu\MenuItem Sets menu item's target, for example _blank.
options(array $options): VienasBaitas\Menu\MenuItem Set menu item instance options.
option($key, $value): VienasBaitas\Menu\MenuItem Set menu item instance option.
child(string $title): VienasBaitas\Menu\MenuItem Returns existing or creates a new child item with given title.