- Can I use id4v/menu-bundle in a Laravel application?
- No. ID4V MenuBundle is a Symfony bundle registered through AppKernel or bundles.php and wired through the Symfony DI container; it has no service provider, facade, config publishing, or Eloquent models. Dropping it into a Laravel app with Composer will not produce working menus, so the realistic path is to reimplement the menu feature natively in Laravel.
- How do I install id4v/menu-bundle with Composer?
- You would run composer require id4v/menu-bundle, register the bundle in AppKernel.php on Symfony 2 or 3 or in bundles.php on later versions, then wire services through the Symfony container. In practice the 2015-era constraints on symfony/* and php often make installation fail on modern PHP, and forcing it with --ignore-platform-reqs gives code that will not boot. It is not installable into a Laravel application at all.
- Does this package support Laravel 10 or Laravel 11?
- No. The bundle targets Symfony 2.x and predates Symfony Flex, autowiring defaults, and the AbstractController era, so it was never designed for Laravel 10 or 11. Laravel version support is not applicable because there is no Laravel integration, no service provider, and no Blade rendering path.
- Is id4v/menu-bundle still maintained?
- No. The last release was 2015-09-29, the repository has roughly one star and zero Packagist dependents, and there is no evidence of active maintenance. Expect no PHP 8 compatibility work, no security advisories, and no upstream response to issues, so every defect becomes yours to fix.
- What dependencies does id4v/menu-bundle pull in?
- It is built as an admin-side menu editor for SonataAdminBundle, so it pulls in SonataCoreBundle, SonataBlockBundle, SonataDoctrineORMAdminBundle, KnpMenuBundle and their transitive dependencies. Adopting it means adopting that entire Symfony and Sonata ecosystem, which is a disproportionate commitment for a single menu table. For a Laravel codebase it is a hard stop.
- How does the bundle store menu data — Doctrine or Eloquent?
- Persistence is Doctrine ORM entities with a hierarchical menu-item model, typically a parent/child relationship using nested-set or adjacency-list storage. There are no Eloquent models, no Laravel migrations, and no config publishing. If you port the concept, keep the schema idea and rewrite the persistence layer for Eloquent.
- Does it support multi-level nested menus and Twig rendering?
- Yes, nesting and rendering are core to the bundle: menu items support a parent/child structure and output is produced through Twig templates. That logic does not transfer to Laravel, where you would render with Blade or Inertia and typically cache the resolved tree to avoid rebuilding it on every request.
- Is it safe to run a 2015 Symfony menu bundle in production?
- Risky. The bundle exists to let admins author content that is rendered on the public site, and a decade-old admin integration touching Sonata, Doctrine and a tree editor is a plausible source of XSS, mass-assignment, or access-control gaps with no advisories incoming. It also locks you to old Symfony and Doctrine versions that no longer receive patches.
- What are the alternatives for managing menus in Laravel?
- The sensible options are reimplementing in-house with a menus and menu_items schema, a tree service, a cache layer, and an admin UI in Filament or Nova, or adopting a maintained Laravel menu package if one matches your requirements. A Symfony sidecar service is almost never justified for a menu table, since it adds a network hop, an extra deployment, and an auth boundary for trivial data.
- How hard is it to port MenuBundle to Laravel?
- It is days of work, not weeks, for a standard menu CRUD feature. Treat the repository as a reference implementation for the data model and tree handling, rewrite persistence to Eloquent and the admin layer to your existing tooling, and cover the tree service with tests for ordering, nesting depth, and visibility rules.