agence-adeliom / easy-menu-bundle
A Symfony Menu bundle for EasyAdmin
Installs: 8 828
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 0
Forks: 5
Open Issues: 2
Type:symfony-bundle
pkg:composer/agence-adeliom/easy-menu-bundle
Requires
- php: >=8.2
 - agence-adeliom/easy-common-bundle: ^3.x-dev
 - agence-adeliom/easy-fields-bundle: ^3.x-dev
 - easycorp/easyadmin-bundle: ^3.4 || ^v4.0
 - stof/doctrine-extensions-bundle: ^1.13
 - symfony/config: ^6.4 || ^7.0
 - symfony/dependency-injection: ^6.4 || ^7.0
 - symfony/deprecation-contracts: ^2.2 || ^v3.0
 - symfony/event-dispatcher: ^6.4 || ^7.0
 - symfony/form: ^6.4 || ^7.0
 - symfony/framework-bundle: ^6.4 || ^7.0
 - symfony/http-kernel: ^6.4 || ^7.0
 - symfony/options-resolver: ^6.4 || ^7.0
 - symfony/property-access: ^6.4 || ^7.0
 
- 3.x-dev
 - 3.0.1-alpha
 - 3.0.0-alpha
 - 2.x-dev
 - 2.0.127
 - 2.0.126
 - 2.0.125
 - 2.0.124
 - 2.0.123
 - 2.0.122
 - 2.0.121
 - 2.0.120
 - 2.0.119
 - 2.0.118
 - 2.0.117
 - 2.0.116
 - 2.0.115
 - 2.0.114
 - 2.0.112
 - 2.0.111
 - 2.0.110
 - 2.0.109
 - 2.0.108
 - 2.0.107
 - 2.0.106
 - 2.0.105
 - 2.0.104
 - 2.0.103
 - 2.0.102
 - 2.0.101
 - 2.0.100
 - 2.0.99
 - 2.0.98
 - 2.0.97
 - 2.0.96
 - 2.0.95
 - 2.0.94
 - 2.0.93
 - 2.0.92
 - 2.0.91
 - 2.0.90
 - 2.0.89
 - 2.0.88
 - 2.0.87
 - 2.0.86
 - 2.0.85
 - 2.0.84
 - 2.0.83
 - 2.0.82
 - 2.0.81
 - 2.0.80
 - 2.0.79
 - 2.0.78
 - 2.0.77
 - 2.0.76
 - 2.0.75
 - 2.0.74
 - 2.0.73
 - 2.0.72
 - 2.0.71
 - 2.0.70
 - 2.0.69
 - 2.0.68
 - 2.0.67
 - 2.0.66
 - 2.0.65
 - 2.0.64
 - 2.0.63
 - 2.0.62
 - 2.0.61
 - 2.0.60
 - 2.0.59
 - 2.0.57
 - 2.0.56
 - 2.0.55
 - 2.0.54
 - 2.0.53
 - 2.0.52
 - 2.0.49
 - 2.0.48
 - 2.0.47
 - 2.0.46
 - 2.0.45
 - 2.0.44
 - 2.0.43
 - 2.0.42
 - 2.0.41
 - 2.0.40
 - 2.0.39
 - 2.0.38
 - 2.0.37
 - 2.0.36
 - 2.0.35
 - 2.0.34
 - 2.0.33
 - 2.0.32
 - 2.0.31
 - 2.0.30
 - 2.0.29
 - 2.0.28
 - 2.0.27
 - 2.0.26
 - 2.0.25
 - 2.0.24
 - 2.0.23
 - 2.0.22
 - 2.0.19
 - 2.0.18
 - 2.0.17
 - 2.0.16
 - 2.0.15
 - 2.0.10
 - 2.0.9
 - 2.0.8
 - 2.0.7
 - 2.0.6
 - 2.0.5
 - 2.0.4
 - 2.0.3
 - 2.0.2
 - 2.0.1
 - 1.0.0
 - dev-develop
 - dev-main
 
This package is auto-updated.
Last update: 2025-10-29 17:58:53 UTC
README
Easy Menu Bundle
A basic Menu system for Easyadmin.
Versions
| Repository Branch | Version | Symfony Compatibility | PHP Compatibility | Status | 
|---|---|---|---|---|
3.x | 
3.x | 
6.4, and 7.x | 
8.2 or higher | 
New features and bug fixes | 
2.x | 
2.x | 
5.4, and 6.x | 
8.0.2 or higher | 
Bug fixes | 
1.x | 
1.x | 
4.4, and 5.x | 
7.2.5 or higher | 
No longer maintained | 
Installation with Symfony Flex
Add our recipes endpoint
{
  "extra": {
    "symfony": {
      "endpoint": [
        "https://api.github.com/repos/agence-adeliom/symfony-recipes/contents/index.json?ref=flex/main",
        ...
        "flex://defaults"
      ],
      "allow-contrib": true
    }
  }
}
Install with composer
composer require agence-adeliom/easy-menu-bundle
Enable tree extension
Update config/packages/stof_doctrine_extensions.yaml to add gedmo tree mapping configuration:
stof_doctrine_extensions: orm: default: tree: true doctrine: orm: entity_managers: default: mappings: gedmo_tree: type: attribute prefix: Gedmo\Tree\Entity dir: "%kernel.project_dir%/vendor/gedmo/doctrine-extensions/src/Tree/Entity" alias: GedmoTree # (optional) it will default to the name set for the mapping is_bundle: false
Setup database
Using doctrine migrations
php bin/console doctrine:migration:diff php bin/console doctrine:migration:migrate
Without
php bin/console doctrine:schema:update --force
Documentation
Manage menu in your Easyadmin dashboard
Go to your dashboard controller, example : src/Controller/Admin/DashboardController.php
<?php namespace App\Controller\Admin; ... use App\Entity\EasyMenu\Menu; class DashboardController extends AbstractDashboardController { ... public function configureMenuItems(): iterable { ... yield MenuItem::linkToCrud('easy.menu.admin.menus', 'fa fa-file-alt', Menu::class); ...
Front add a menu in a page (with twig)
# 1. Create as separate html twig file to render your template : templates/bundles/EasyMenuBundle/front/menus/my_menu_code.html.twig # 2. Execute this twig extension on your controller template {{ easy_menu('my_menu_code') }} # Optional. If you need to specify your own template file path {{ easy_menu('my_menu_code', { 'template': 'menus/my_menu_code.html.twig' }) }}
In your menu template you can list menu items
<ul> {% for item in menu.items %} <li>{{ item.name }}</li> {# recursive loop ... #} {% endfor %} </ul>