prodigious/sonata-menu-bundle
A Symfony bundle for creating and managing hierarchical menus with Sonata Admin integration, editable menu items, and Twig rendering helpers. Configure menu providers, control item visibility, and organize site navigation cleanly in Symfony applications.
Architecture fit. Unchanged and reconfirmed by this release. A patch titled "Compatibility with recent symfony/yaml changes" is a Symfony-ecosystem fix; it is further evidence that this is a Symfony bundle extending Sonata Admin's CRUD/Admin layer, with Sonata Page Bundle integration for block-level menu rendering — not a Laravel package. It fits only an architecture already committed to Symfony + Sonata Admin + Sonata Page + Doctrine ORM. In Laravel or framework-agnostic PHP there remains no viable adaptation path; the symfony/yaml dependency has no Laravel analogue and no bearing on a Laravel integration.
Integration feasibility. Low to moderate, marginally improved. The install surface is unchanged: register the bundle, wire admin classes, configure page-block associations, run Doctrine schema/migration steps. Two signals move in a positive direction and two do not:
symfony/yaml compatibility fix is exactly the class of drift that silently breaks a Sonata admin panel, so reactive patching has real value.3.0.7 tag implies an active 3.x line and a versioning discipline, not an orphaned snapshot.Net: the release improves the "will anyone fix it when it breaks?" answer and leaves the "will anyone modernize it?" answer untouched. A compat patch is not a maintenance commitment.
Technical risk — high, with the abandonment sub-risk downgraded to moderate.
symfony/yaml is now handled. Everything else remains unverified — Symfony 6/7, Sonata Admin major versions, PHP 8.2/8.3, Doctrine DBAL 3/4. A one-dependency fix does not imply a compatibility matrix.Key questions.
composer.json now require for symfony/yaml? That constraint is the thing that just changed.Stack fit. Go/no-go gate #1: Symfony-only — reinforced, not relaxed, by this release. Gate #2: existing Sonata Admin footprint. Acceptable only if we already run Sonata Admin + Sonata Page.
Migration path. Unchanged: vendor-and-own, not consume-as-dependency.
composer.lock. Pay specific attention to the symfony/yaml constraint that 3.0.7 adjusts — that is our highest-probability future resolution conflict.Compatibility. Build the explicit matrix before code: Symfony LTS × Sonata Admin major × Sonata Page major × DBAL × symfony/yaml. 3.0.7 shortens the list by exactly one row. Verify Doctrine nested-set tree behavior and migration generation against our DB engine; confirm PHP support empirically, not from the README.
Sequencing.
composer.json (hours): cheaper than a spike and may answer gate questions outright.3.0.7 does not promote this item out of candidate status. Do not sequence it onto a critical-path milestone.
Maintenance. Revised from "effectively zero upstream maintenance" to sporadic reactive maintenance. Adopting it still transfers the bulk of maintenance to us. The release is evidence the maintainer patches known breakage, not evidence of a dependency-upgrade roadmap. Budget recurring time for dependency bumps, security patches, and Sonata major-version migrations.
Support. Unchanged: no vendor, no visible community, 0 known dependents. 3.0.7 does not create a support channel — it confirms a pulse. Internal documentation and a named owner remain mandatory; bus factor of one is a live risk.
Scaling. No change. Menu admin operations are low-volume; nested-set reads are efficient and cacheable. The bundle will not be a throughput bottleneck — the risk is lifecycle, not performance.
Failure modes to plan for.
symfony/yaml is one instance, not the general case.Mitigations: pin and lock, CI boot test, feature flag, documented exit plan, and — new — track upstream commit activity as a standing health check rather than watching only for tags.
Ramp-up. Unchanged. A Symfony developer familiar with Sonata needs ~1–2 weeks to be productive; a Laravel-only team should not attempt this. Onboarding cost is dominated by Sonata Admin conventions, not by this bundle.
TPM recommendation. Unchanged in substance. Do not adopt for a Laravel property — 3.0.7 is a Symfony dependency fix and does not apply. On a Symfony/Sonata estate, treat it as a conditional, low-priority candidate: 3.0.7 marginally improves the abandonment outlook and materially improves the symfony/yaml outlook, but neither is sufficient to justify adoption. Require a passing spike, a compatibility matrix covering the dimensions 3.0.7 did not address, an explicit fork-ownership commitment, and a written exit plan before scheduling integration work. Re-review at the next upstream release or in 90 days, whichever comes first.
How can I help you explore Laravel packages today?