versh/jsrouting-bundle
versh/jsrouting-bundle is a Symfony bundle that exposes application routes to JavaScript, letting frontend code generate URLs by route name and parameters. It helps keep client-side links, AJAX calls, and API endpoints in sync with Symfony routing definitions.
Bottom line: hard no for a Laravel stack; high-risk legacy dependency for a Symfony stack. The package is a Symfony2-era bundle, not a Laravel package, and the metadata alone (0 stars, 0 dependents, last release 2017-02-15) disqualifies it from anything we'd have to support beyond the next Symfony upgrade.
Architecture fit
FOSJsRoutingBundle, which does one thing: expose selected Symfony routes to the browser via a fos_js_routing_js controller endpoint that emits a JS Routing object, consumed as Routing.generate('route_name', params).web/bundles/..., Twig 1.x, sensio/framework-extra-bundle). Symfony 4+ removed the bundle asset-publish convention; Symfony 6/7 will fail Composer resolution outright.Integration feasibility
versh/jsrouting-bundle) does not match the repository it claims (FriendsOfSymfony/FOSJsRoutingBundle), and the star count belongs to neither upstream. That is a fork of unknown diff fidelity. Before any evaluation spend, diff the fork against upstream and confirm no injected code.Technical risk
options: { expose: true }, and the API only generates URLs (it does not dispatch), so the design is reasonable — but a misconfigured whitelist leaks internal route names, parameter names, and path structure to any anonymous client.Routing.generate calls fail at runtime when a route is renamed, with no server-side signal — silent breakage in the field rather than a failed build.Key questions to close before a decision
FriendsOfSymfony/FOSJsRoutingBundle (or its modern successor) still viable, and does it support our Symfony/PHP versions?Stack fit
route:list --json output post-processed into a JS/TS module, or the established tighten/ziggy-style package. Same DX, no Symfony coupling, no runtime endpoint.Migration path
composer require versh/jsrouting-bundle in a scratch container of the target framework. Expected outcome is a dependency-resolution failure; document the exact blocker as the evidence for the decision record.Routing.-style calls to size the real need. If nothing exists yet, the requirement is speculative and the answer is "define the contract, don't buy the package."routes.json + a ~100-line resolver. Committed or emitted as a build artifact; served as a static asset.Compatibility
Routing script tag published to a public directory does not fit a modern bundler without a shim.Sequencing Decision record → spike evidence → manifest implementation → contract test asserting every emitted route name resolves and every resolver key exists server-side → staged rollout. Do not sequence the manifest work before the audit confirms the requirement; the audit is the cheap gate.
Maintenance
Support
Scaling
Failure modes
Ramp-up
Recommendation: reject the package. Close the framework question first — it changes the recommendation from "use Ziggy" (Laravel) to "use upstream or build the manifest" (Symfony) — but in neither case does this 2017 fork belong in the dependency tree.
How can I help you explore Laravel packages today?