lephare/menu-bundle
lephare/menu-bundle is a PHP package for defining, organizing, and rendering menus in your application. It supports nested menu items and configurable output, helping you build reusable navigation structures through a simple API and keep menu configuration consistent across your project.
Bundle suffix, symfony-bundle Composer type, DI/compiler-pass scaffolding), not a Laravel package. If the product is Laravel, this is a documented non-starter — a clean early rejection that saves a spike.spatie/laravel-menu for Laravel, knp-menu for Symfony) or a Blade component plus an Eloquent tree — not to resurrect this repo.composer.json. That's a legitimate PM-visible use: cheap design input, zero supply-chain cost.Consider it only as read-only reference material:
Look elsewhere when:
Bundle base class, no DI compiler pipeline. The Symfony-specific scaffolding is most of the package's surface area and cannot load at all. Expect a class-not-found or container-resolution failure at boot — an outage, not a degraded menu.composer.lock conflicts.SECURITY.md, no issue triage — the bus factor and abandonment risk are unacceptable for anything on a critical path.For executives: This is an archived Symfony package with no users, no dependents, and no maintainer. It is not a candidate for adoption — it's a signal, not a solution. The practical recommendation is: do not adopt it; budget navigation/menu work as either a small in-house build or a well-supported third-party choice (a few hundred lines of Eloquent plus a Blade component covers the common requirement). The important takeaway is process, not this specific package: we should evaluate dependencies on maintenance health and framework fit, not on convenience. Adopting unmaintained code is a false economy — the initial integration looks free, and we inherit every future fix, upgrade, and security patch forever.
For engineering: Treat lephare/menu-bundle strictly as reference material. It is a Symfony bundle, so there is no installable path in a Laravel 10/11 / PHP 8.2+ codebase — don't attempt composer require, and never place it in a shared dependency set (a Bundle-shaped class autoloaded in Laravel is a boot-time outage). If menu/tree structures hit the roadmap, run a 1–2 day spike: read the source, separate domain logic from Symfony scaffolding (DI extension, compiler passes, Twig extension), and confirm whether anything is genuinely non-obvious. If it's a thin wrapper with no interesting persistence model, close it out and implement natively against spatie/laravel-menu or a small Eloquent tree. If we do fork for a legacy Symfony migration, the gate is parity HTML-diff tests across representative trees (empty, single-level, deep, multi-locale, permission-filtered) — and a named owning team, a LICENSE, and a service-catalog entry before the first line is ported. Design against the known failure modes up front: cyclic parent_id references (depth cap or closure table with write-time cycle prevention), stale cache after editorial edits (cache key on a menu version stamp), and dangling references to unpublished or deleted pages in the primary nav.
How can I help you explore Laravel packages today?