dereuromark / cakephp-menu
Composable menu builder and renderer for CakePHP
Package info
github.com/dereuromark/cakephp-menu
Type:cakephp-plugin
pkg:composer/dereuromark/cakephp-menu
0.1.2
2026-05-26 13:05 UTC
Requires
- php: >=8.2
- cakephp/cakephp: ^5.3
Requires (Dev)
- php-collective/code-sniffer: dev-master
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.5 || ^12.1 || ^13.0
This package is auto-updated.
Last update: 2026-05-27 16:28:43 UTC
README
Composable menu builder and renderer for CakePHP applications.
This branch is for CakePHP 5.3+. See the version map for details.
Features:
- nested menu trees with string and Cake-style array URLs
- active-state matching with alternate routes, named routes, and fuzzy matching
- helper-managed named menus and breadcrumb integration
- extensible resolvers and renderers for app-specific rules
Installation
composer require dereuromark/cakephp-menu
Load the plugin:
bin/cake plugin load Menu
Load the helper in your AppView:
use Cake\View\View; class AppView extends View { public function initialize(): void { parent::initialize(); $this->loadHelper('Menu.Menu'); } }
Quick Start
use Menu\Menu; $menu = Menu::create(['class' => 'nav']); $menu->addItem('Dashboard', ['controller' => 'Dashboard', 'action' => 'index']); $account = $menu->addItem('Account', '#', [ 'attributes' => ['class' => 'nav-item'], ]); $account->getSubMenu()->setAttributes(['class' => 'submenu']); $account->add($menu->newItem('Profile', ['controller' => 'Users', 'action' => 'profile'])); $account->add($menu->newItem('Logout', ['controller' => 'Users', 'action' => 'logout'])); echo $this->Menu->render($menu);
Documentation
Full documentation lives at https://dereuromark.github.io/cakephp-menu/.