friendsofvictoire/menu-widget
A reusable menu widget for the Victoire CMS. Add configurable navigation menus to your pages and templates, and let editors manage links and structure from the widget interface without touching code. Built to plug into Victoire's widget system and fit existing Symfony projects.
Architecture fit — poor. Despite the "Laravel/PHP package" framing, friendsofvictoire/menu-widget is a Symfony bundle (WidgetMenuBundle) built for Victoire DCMS. It targets Symfony's kernel/bundle registration model, Doctrine ORM entities, and Victoire's widget abstraction (victoire/widget-bundle). A Laravel application has no bundle registry, no Doctrine entity manager by default, and no Victoire widget-controller contract. There is no service provider, no config publish tag, no Blade views — the integration surface simply does not exist for our stack.
Integration feasibility — low / effectively a rewrite. Two paths exist, both unattractive:
Technical risk — high. Signals are uniformly negative: 0 stars, 0 dependents, last release 2019-07-04, opportunity score 1.14 against an overall score of 1.38. A package with zero dependents means zero downstream validation — no one has proven it works in production, and no one will report breakage. PHP constraint is almost certainly 7.x-era, with Symfony 3.4/4.x pins; PHP 8.1+ and modern Symfony will likely fatally conflict at composer require. Any adoption implies we own the fork, the security posture, and the upgrade path permanently.
Key questions for the requester:
spatie/laravel-navigation, filament navigation builders, or a 60-line Eloquent tree + Blade partial?Stack fit — none. The bundle presumes Symfony Flex-style bundle enablement, Doctrine mappings, Twig templates, and Victoire's widget rendering pipeline. Our Laravel estate uses Eloquent, Blade/Livewire, and service providers. Nothing transfers.
Migration path — treat as reference only. Recommended sequence:
parent_id + recursive CTE for ordering; admin surface via Filament or Livewire; Blade component for render; cache the resolved tree.Compatibility — blocking. Expect Composer resolution failures on symfony/* and doctrine/* constraints against a Laravel 10/11 app on PHP 8.2+. Even if forced through with --ignore-platform-reqs, runtime deprecations and missing services will surface at boot.
Sequencing if, against recommendation, we proceed: pin a throwaway Symfony container → isolate the widget behind an HTTP boundary → evaluate latency and session coupling → then decide. Do not attempt in-process co-hosting first; it is the highest-cost, highest-risk ordering.
Maintenance — we become the maintainer. No releases since July 2019, no dependents, no community. Every future PHP or Symfony bump is our work. Estimate ongoing cost as a low-but-permanent tax plus an unplanned migration when PHP drops 7.x support entirely.
Support — absent. 0 stars means no issue triage, no Stack Overflow corpus, no security advisories. Any CVE in the Victoire/Symfony 3–4 dependency chain lands on us with no upstream patch path. This is a governance problem, not just an engineering one; it likely fails a standard third-party dependency review.
Scaling — not the bottleneck. Menu rendering is read-heavy and trivially cacheable; the widget will never be the constraint. The dual-runtime approach, however, doubles the deploy footprint, cold-start cost, and observability surface for a single UI component. That is the real scaling penalty.
Failure modes to plan for:
Ramp-up — high and misallocated. The menu domain itself is simple (a day for any mid-level engineer). The ramp-up cost is entirely in Symfony/Victoire idioms the team does not need to learn for this outcome.
Recommendation: do not adopt. Score of 1.38 with zero dependents and a six-year-old release is a hard decline for a Laravel stack. Budget 2–3 engineer-days to build the equivalent natively and close the dependency question permanently.
How can I help you explore Laravel packages today?