vincentchalamon/nav-bundle
vincentchalamon/nav-bundle is a Symfony bundle for building and managing site navigation. It gives you a structured way to define nav items and menus, then render them in your templates, keeping navigation configuration out of controllers and views.
Architecture fit
The v2.0.0 release notes describe a Symfony-oriented package (removal of easycorp/easyadmin-bundle and sensio/framework-extra-bundle support, adoption of symfony/phpunit-bridge, and a symfony ^6.0 constraint). This is inconsistent with the stated framing of a "Laravel/PHP package." Before any integration decision, confirm what this package actually is. Two scenarios:
No evidence in this release of Laravel-specific integration surfaces (service provider, facade, config publishing, Artisan commands). Absent those, treat it as a standalone PHP library, not a Laravel package.
Integration feasibility Feasible on PHP 8 with Symfony 6 components. Two hard blockers exist for existing consumers: (1) any code path relying on the EasyAdmin or SensioFrameworkExtraBundle integrations is removed outright, with no stated deprecation shim; (2) the new PHP 8 and Symfony 6 floors eliminate PHP 7.x and Symfony 5 environments. Where neither removed integration is in use, the upgrade surface is small — the remaining changes are tooling (PHPUnit bridge, CS, PHPStan) and should be behavior-neutral.
Technical risk
[BC] removals in a major bump, so breakage is expected but the blast radius is undocumented.illuminate/* component versions in older Laravel releases; the release notes make no compatibility statement about Laravel.Key questions
composer.json declare?Stack fit Conditional. On a Symfony 6 / PHP 8 stack, fit is good and the release modernizes an already-aligned package. On a Laravel stack, fit is unproven: no Laravel-native integration is evidenced, and the package's center of gravity is Symfony. Do not plan an integration until the framework question above is resolved.
Migration path
Compatibility
Hard floors: PHP 8.0+ and Symfony ^6.0 component constraints. The EasyAdmin and SensioFrameworkExtraBundle integration paths are gone in v2. Laravel compatibility is undocumented in this release and must be validated empirically via composer why-not / dependency resolution against the target Laravel version.
Sequencing Resolve the framework-identity question first — it gates everything else. Then run the usage audit for removed integrations, then upgrade the runtime (PHP 8, Symfony 6) in a branch, then bump the package. Do not sequence the package bump ahead of the runtime upgrade; the constraints make that order impossible.
Maintenance
Positive signals: PHPStan fixes, CS normalization, and migration to the maintained symfony/phpunit-bridge indicate an actively tended codebase. The cost is a major version event requiring consumer-side work. Track upstream for guidance on v1.x support duration.
Support No stated LTS or backport policy. The removal of two integrations in a single major release without a deprecation cycle raises a support-quality question — expect a smaller, Symfony-6-only supported surface going forward. Budget for self-support if we depend on the removed paths.
Scaling No runtime or performance implications are evident in this release. The changes are dependency, test-tooling, and static-analysis oriented. Scale characteristics should be unchanged from v1.x.
Failure modes
composer update cannot satisfy Symfony 6 alongside pinned illuminate/* versions).Ramp-up Low for engineers familiar with Symfony and Composer constraints; the package's own concepts are unchanged. The removed integrations slightly reduce documented surface area, which helps. The primary ramp-up cost is organizational, not technical: reconciling the Laravel-vs-Symfony framing and confirming which applications are actually affected.
How can I help you explore Laravel packages today?