CakePHP Menu Plugin
May 26, 2026 ยท View on GitHub
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/.