nucleos/menu-bundle
A Symfony bundle for building and rendering menus from a fluent PHP API, with support for nested items, attributes, translation, current-item matching, and Twig rendering. Configure menus in services and output accessible markup.
Premise check (still stands): nucleos/menu-bundle is a Symfony bundle, not a Laravel package. It ships a Symfony Bundle class, a DI extension with a config tree, and container-wired services. The Laravel framing in the original brief remains invalid and should be corrected upstream.
What changed in 2.9.0
symfony/phpunit-bridge bumped to v8 (PR #520) — consistent with an active CI matrix now including Symfony 8.2026-04-03 date flagged as a possible metadata artifact in the prior assessment is now corroborated — the release notes carry the same date and link a real milestone and PR numbers. Downgrade that concern from "verify" to "resolved."Architecture fit
Integration feasibility
composer require, register in bundles.php, add config. Hours.Technical risk — revised
core23), with Renovate handling the mechanical dependency updates. The bot is doing real work here; do not mistake bot PRs for maintainer depth.^6.4|^7|^8, or did it replace older majors? Many bundles drop EOL Symfony versions when adding a new one. If Symfony 6 support was dropped in a minor release, that is a semver violation with real upgrade consequences for us.Key questions before committing (revised)
composer.json constraint add Symfony 8 or replace earlier majors? This is now the top question — check the diff on PR #526 directly. A minor-version drop of Symfony 6 support would be a breaking change shipped without a major bump.Stack fit
Migration path (Symfony target)
2.9.0 explicitly, not ^2.9. Confirm the constraint diff from Q1 before merging.Migration path (Laravel target)
config/menus.php + a MenuBuilder singleton + a Blade component is a day of work and eliminates the single-maintainer exposure entirely.spatie/laravel-menu first.Compatibility
symfony/dependency-injection and symfony/config alignment specifically — these are where the conflict surfaces.Sequencing
MenuProvider interface so the bundle sits behind an adapter. Still the highest-value step; 2.9.0 reduces the abandonment risk but does not eliminate it.Maintenance
Support
Scaling
Failure modes (revised)
Ramp-up
Recommendation: Adopt on a Symfony stack, conditionally on the constraint check. Run step 1 first — if PR #526 widened the Symfony range to include our current version, adopt behind our own MenuProvider interface at an exact pin with structural tests. If it replaced an older major we still depend on, pin to the last 2.8.x that supports us and revisit at our next platform upgrade. Do not adopt on a Laravel stack — unchanged; reimplement natively or use spatie/laravel-menu. Net movement from the prior assessment: maintenance risk is down one notch on hard evidence, the data-integrity concern is closed, and the remaining risk has shifted from "will the maintainer show up" to "did the constraint bump break our version floor."
How can I help you explore Laravel packages today?