Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Navigation Bundle Laravel Package

everlutionsk/navigation-bundle

A Symfony bundle for rendering multiple navigation instances that are registered dynamically via tagged services. It supports containers, nested items, routing, breadcrumbs, filtering, sorting, translation, and highlighting the current item.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Navigation architecture (in-app menus): The bundle solves a specific, recurring product need — rendering multiple independent navigation instances (header, footer, sidebar, account menu, breadcrumb-style nav) in one request, each composed from items registered by tagged services. That directly supports a decision to standardize navigation as a first-class, DI-driven concern instead of ad-hoc Twig templates per page.
  • Permission/role-aware menus: Because items come from services and the package supports filtering items and highlighting the current item, it supports product decisions around contextual navigation — showing different menu sets per role, tenant, or feature flag without duplicating templates.
  • Build vs. buy for the menu layer: This is a thin rendering and registration layer, not a menu management system. It supports a "build the authoring/admin side, buy/normalize the rendering side" split — content-driven menus (editable by marketers) are explicitly not in scope, so a DB-backed menu builder remains a separate build decision.
  • Roadmap sequencing with low commitment: The surface area is small and presentation-only, which supports deferring investment: adopt for internal/composed menus now, keep the door open to replace it later with minimal migration cost.
  • Framework-fit decision (important caveat): Despite the framing as a Laravel/PHP package, the README describes a Symfony Bundle built on everlutionsk/navigation with tagged services and bundle configuration. For a Laravel codebase this is not a drop-in — the real decision it supports is whether to port the container/registration concept into Laravel service providers and Blade components rather than install it. For Laravel, spatie/laravel-menu or a small internal Blade-component menu registry is the lower-risk path.
  • Vendor-risk decision: 2 stars, 0 dependents, no visible security policy, and a single small vendor make this a "pin and be prepared to fork" dependency, not a strategic platform choice. That constrains it to low-blast-radius, presentation-layer use.

When to Consider This Package

Consider it when:

  • You are on Symfony (not Laravel) and want code-defined navigation rather than CMS-managed menus.
  • You need several distinct nav instances per page and want them assembled from independently registered services (e.g., each feature module or bundle contributes its own items).
  • You want route-aware items — named routes with parameters, dynamic route parameters, and automatic current-item highlighting — without writing that logic yourself.
  • Your team is comfortable owning a dependency with low community traction: you can pin a version, read the source, and fork if needed.
  • Menus are owned by developers in code, and product does not need non-technical editing.

Look elsewhere when:

  • You are on Laravel. The bundle's integration points (bundles, tagged services, bundle config) don't map onto Laravel. Use spatie/laravel-menu, or a ~100-line internal menu registry plus Blade components — you'll get the same route-param and active-state behavior with first-party ownership.
  • Non-technical users must edit menus. This package renders; it does not persist or administer. You need a DB-backed menu entity plus an admin UI (or a CMS).
  • You need ecosystem depth and support. For Symfony, KnpMenu/KnpMenuBundle is the de facto standard with far broader adoption, documentation, and third-party integrations. Choosing this bundle over KnpMenu is a bet on a much smaller maintainer base for a problem KnpMenu already solves.
  • You need out-of-the-box accessibility, caching, or complex tree rendering. Verify the rendered markup (ARIA, keyboard nav, nested list semantics) and any per-request caching before committing; a thin renderer often leaves this to you.
  • Procurement or security review gates dependencies on maintained-since dates, dependents, or a security contact. Two stars and zero dependents will likely fail that gate regardless of code quality.

How to Pitch It (Stakeholders)

For executives (one paragraph): Navigation is a small, high-visibility part of the product, and this MIT-licensed library gives us a clean, reusable way to render several coordinated menus per page — including ones that respond to user role and current page — instead of maintaining duplicate templates. The cost is effectively zero and the risk is contained: it's a presentation-only layer with a small codebase, so if we ever need to replace it, the work is measured in days, not quarters. The one thing to flag is that it targets Symfony, not our Laravel stack, so the realistic play is to adopt the pattern (a service-registered menu container rendered by components) rather than the package itself — giving us the benefit with none of the third-party dependency risk.

For engineering (summary): Dependency-injection-driven navigation container: items are registered via tagged services into named containers, containers render in templates, and items support named routes with static or dynamic parameters, current-item highlighting, and per-container item filtering. Small, single-vendor package (everlutionsk), 2 stars, 0 dependents, MIT, last release Nov 2024, built on the sibling everlutionsk/navigation library — quality tooling (Scrutinizer) is configured, but community validation is essentially absent. Recommendation: treat it as a reference implementation. On Symfony, evaluate against KnpMenu before adopting; on Laravel, reimplement the container-plus-registration pattern in a service provider with Blade components and own it in-repo. If we do install it, pin the version, add it to our fork-watch list, and keep all menu definitions behind our own interface so the library stays swappable.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk