PHPackages                             kregel/menu - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. kregel/menu

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

kregel/menu
===========

This will automatically build/ generate a menu based upon your configuration file.

v1.1.1(9y ago)6444PHPPHP &gt;=5.4.0

Since May 12Pushed 9y ago3 watchersCompare

[ Source](https://github.com/austinkregel/Menu)[ Packagist](https://packagist.org/packages/kregel/menu)[ RSS](/packages/kregel-menu/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (5)Used By (0)

[![downloads](https://camo.githubusercontent.com/109f6285518a7cebdf48fed8d6b88f86c7f4c807d27a408f0349072673bb98e0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6b726567656c2f6d656e752e737667)](https://packagist.org/packages/kregel/menu)

What is it?
===========

[](#what-is-it)

This is an menu generator build with Laravel and Bootstrap in mind

Demo
====

[](#demo)

You can see a demo [on my website](http://menu.austinkregel.com)

Set up
======

[](#set-up)

1. `composer require kregel/menu` or add `"kregel/menu": "dev-master"` to your composer.json file.
2. Register the service provider with your `config/app.php` file.

```
 'providers' => [
   ...,
   Kregel\Menu\MenuServiceProvider::class,
   ...,
 ]
```

3. Publish our config

```
php artisan vendor:publish --provider="Kregel\Menu\MenuServiceProvider"
```

4. Which ever blade file is storing your current nav set up just add ONE line of code to replace your whole menu system and where ever you start your menu, just replace it with what's below.

```
@include('menu::main.bootstrap')
```

Other frameworks will be supported at a later time, the Materialize framework is being worked on right now.

### Configuration

[](#configuration)

So, now you have your menu system set up, it's recommended that you edit your configuration. How? You might ask. There's so much and it's soooo confusing that I don't know where to begin!

Well... Let me help you out here.

###### Brand Name

[](#brand-name)

There are quite a few things that you should really change. Something like the `brand.name`, should be changed to your brand's name. Whether that is your business's name, your product/projects name, or your name. You don't need to use [font-awesome](http://fortawesome.github.io/Font-Awesome)(but you totally should).

###### Theme

[](#theme)

I usually leave the theme alone; however, you can change it to what ever you want.

###### Items

[](#items)

The array within the "items" section is every element that will be located on every page whether logged in or logged out.

###### Login

[](#login)

This is enabled by default. Those elements located withing the "sign-in" section. These elements will be shown ONLY when the end user is NOT logged in.

Within the "sign-out" section, the default is actually a Dropdown menu. The title of it is "My Account", there is a divider header entitled "settings", then there is an element entitiled settings, the empty single quotes is a way for the default frameworks to differentiate between when to use the divider header and just a divider.

###### Custom Css Frameworks!

[](#custom-css-frameworks)

While it is described more below, the best way to access this is by just newing up your framework handler. That can be done by just making an anonymous function and having it return a new class.

YOU DON'T HAVE MY FRAMEWORK HOW DARE YO-
----------------------------------------

[](#you-dont-have-my-framework-how-dare-yo-)

##### Just stop right there... Build your own framework handler!

[](#just-stop-right-there-build-your-own-framework-handler)

How?
----

[](#how)

##### Just look below...

[](#just-look-below)

How can I build my own framework for this menu system? All you need to do is (somewhere) make a class that has the same methods as the class below.

```
class MyFramework extends Kregel\Menu\Interfaces\AbstractMenu{
    public function add(Array $options)
    {
		// This will add each actual menu item to the menu variable
    }
    public function addDropdown($dropdown_name, $elements)
    {
		// This will build a dropdown ($elements should be an arary
    }
    public function devour()
    {
		// Should return the menu item
    }
    public function buildMenu($menu)
    {
		// This should build the actual menu. For the config file I have
		// And you would call it like
		// $menu->using('myframework')->buildMenu(['Home'=>'/']->devour()
    }
    public function config()
    {
    	// This would be how you handle your framework pulling form the config file.
    }
}
```

Okay... Now what...?
--------------------

[](#okay-now-what)

##### Well... Now you can customize this how you want. I would recommend looking at the default bootstrap handler, and if you have any questions send me an email! :)

[](#well-now-you-can-customize-this-how-you-want-i-would-recommend-looking-at-the-default-bootstrap-handler-and-if-you-have-any-questions-send-me-an-email-)

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 92.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~56 days

Total

3

Last Release

3546d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2c5c1ee0adf552aec8a54c1760dd99c4d1b90c0360dccafeef849a14ff37f706?d=identicon)[austinkregel](/maintainers/austinkregel)

---

Top Contributors

[![austinkregel](https://avatars.githubusercontent.com/u/5355937?v=4)](https://github.com/austinkregel "austinkregel (48 commits)")[![ThamanVelasquezBice](https://avatars.githubusercontent.com/u/18662178?v=4)](https://github.com/ThamanVelasquezBice "ThamanVelasquezBice (4 commits)")

---

Tags

laravelmenuautomatic-menugenerate-menu

### Embed Badge

![Health badge](/badges/kregel-menu/health.svg)

```
[![Health](https://phpackages.com/badges/kregel-menu/health.svg)](https://phpackages.com/packages/kregel-menu)
```

###  Alternatives

[caffeinated/menus

Laravel Menus

134159.5k5](/packages/caffeinated-menus)[nedwors/navigator

A Laravel package to ease defining navigation menus

433.1k](/packages/nedwors-navigator)[kodicomponents/navigation

The KodiCMS Support package.

12232.6k10](/packages/kodicomponents-navigation)[tlr/menu

Take some of the stress and boilerplate out of building menus (or indeed any list, because that's basically what a menu is) With support for laravel

189.6k](/packages/tlr-menu)[nguyendachuy/laravel-menu

Laravel Menu Builder | Drag &amp; Drop | Bootstrap | Laravel 7 | Laravel 8 | Laravel 9 | Laravel 10 | Laravel 11 | Laravel 12

162.2k](/packages/nguyendachuy-laravel-menu)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
