PHPackages                             radotch/cakephp-menu-manager - 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. radotch/cakephp-menu-manager

ActiveCakephp-plugin

radotch/cakephp-menu-manager
============================

MenuManager plugin for CakePHP

1.1.1(7y ago)023MITPHP

Since Jul 11Pushed 7y ago1 watchersCompare

[ Source](https://github.com/radotch/cakephp-menu-manager)[ Packagist](https://packagist.org/packages/radotch/cakephp-menu-manager)[ RSS](/packages/radotch-cakephp-menu-manager/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (0)

MenuManager plugin for CakePHP
==============================

[](#menumanager-plugin-for-cakephp)

Requirements
------------

[](#requirements)

```
 - php >= 5.6.x (recomended >= 7.1)
 - cakephp  ^3.5

```

For testing:

```
 - phpunit ^5.7.14|^6.x

```

Features
--------

[](#features)

- Create Menu
- Create Menu Links associated to Menu
- Menu Links have Tree structure. It's make easy to create dropdowns, accordeon or other specific kind of Menu.
- Menu Links positions
- Translations

Installation
------------

[](#installation)

You can install this plugin into your CakePHP application using [composer](http://getcomposer.org).

The recommended way to install plugin is:

```
composer require radotch/cakephp-menu-manager

```

Load plugin
-----------

[](#load-plugin)

To load plugin add next line in bootstrap() method in Application.php file:

```
$this->addPlugin('MenuManager', ['autoload' => true, 'routes' => true]);

```

or you can use object way

```
$plugin = new \MenuManager\Plugin(array $config = [])
            ->disable('bootstrap')
            ->enable('routes');
$this->addPlugin($plugin)

```

Prior 3.6.0 use next:

```
Plugin::load('MenuManager', ['autoload' => true, 'routes' => true]);

```

And you are ready to use MenuManager plugin.

Migrations
----------

[](#migrations)

Once the plug-in is available execute Migrations to create required tables:

```
$ path/to/project> bin/cake migrations migrate --plugin MenuManager

```

***Note:*** If table i18n already exists migration will not try to create it.

There is available initial seed which can be used if cover application needs on start or just for test purposes:

```
$ path/to/project> bin/cake migrations seed --plugin MenuManager

```

Usage
-----

[](#usage)

### Control panel

[](#control-panel)

Plugin's Control panel is available on '/admin/menu-manager/'. ***Do not forget to restrict access***

Now you can create Menus and add Menu Links.

### Get Data

[](#get-data)

To get Menu Links in hierarchical structure use 'threaded' finder:

```
// In controller
$menu = $this->TableRegistry::getTableLocator()
        ->get('MenuManager.Menus')
        ->find()
        ->contain(['MenuLinks' => ['finder' => 'threaded']])
        ->where([$whereConditions]);

```

Or

```
// In controller
$menuLinks = $this->TableRegistry::getTableLocator()
        ->get('MenuManager.MenuLinks')
        ->find('threaded')
        // Some query requirements
        ->where(['menu_id' => $menuId]);

```

#### Menu Links positions

[](#menu-links-positions)

When create or update menu Link you can set link's position. If is changed at this point the change will not affect other links. All other Menu Link positions must be changed by hand.

Sorry about that and later when I have little more time I'll automate it. Also support will be accepted and appreciated.

### Translation

[](#translation)

To be able to add translations about Menu and Menu Links set next Configuration as associative array or list:

```
$language = [
    'bg_BG' => 'Bulgarian',
    'en' => 'English',
    'en_US' => 'English (United States)'
];
Configure::write('MenuManager.Translation.Languages', $languages);

```

or

```
$plugin = new \MenuManager\Plugin($config = []);
$plugin->setTranslations($languages);

```

The best place is bootstrap() method at Application.php I think.

### Display Menu

[](#display-menu)

At this stage to display menu you have to write your own code.

Good luck!

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~80 days

Total

3

Last Release

2699d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/296ad49c7c509f33d864723601f6177f5db40d7ac8f6318a2e0918982e5dc1c0?d=identicon)[radotch](/maintainers/radotch)

---

Top Contributors

[![radotch](https://avatars.githubusercontent.com/u/20301480?v=4)](https://github.com/radotch "radotch (97 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/radotch-cakephp-menu-manager/health.svg)

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

###  Alternatives

[friendsofcake/cakepdf

CakePHP plugin for creating and/or rendering Pdfs, several Pdf engines supported.

3752.1M3](/packages/friendsofcake-cakepdf)[cakephp/bake

Bake plugin for CakePHP

11211.2M156](/packages/cakephp-bake)[dereuromark/cakephp-tools

A CakePHP plugin containing lots of useful and reusable tools

338920.1k32](/packages/dereuromark-cakephp-tools)[dereuromark/cakephp-queue

The Queue plugin for CakePHP provides deferred task execution.

308850.3k14](/packages/dereuromark-cakephp-queue)[dereuromark/cakephp-ide-helper

CakePHP IdeHelper Plugin to improve auto-completion

1862.1M26](/packages/dereuromark-cakephp-ide-helper)[dereuromark/cakephp-tinyauth

A CakePHP plugin to handle user authentication and authorization the easy way.

129228.6k10](/packages/dereuromark-cakephp-tinyauth)

PHPackages © 2026

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