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

Jsrouting Bundle Laravel Package

funddy/jsrouting-bundle

Funddy JSRoutingBundle exposes Symfony routes to JavaScript, letting front-end code generate URLs from route names and parameters without hardcoding paths. It integrates with Symfony routing and provides a lightweight JS helper for client-side links, AJAX calls, and navigation.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor, and the framing needs correcting up front. funddy/jsrouting-bundle is a Symfony2 bundle, not a Laravel package. It has no service provider, no facade, no config/*.php publishable config, and no Composer extra.laravel block. It integrates through Symfony's Bundle class, DI container compiler passes, and the kernel.request/route-dump lifecycle. Dropping it into a Laravel application is not a configuration exercise; it is a rewrite. The functional intent — exposing server-side named routes to client-side JavaScript so templates stop hardcoding URLs — is legitimate and has a direct Laravel-native equivalent (Ziggy). A TPM should treat this ticket as "we need route generation in JS," not "we need this package."

Integration feasibility — only inside a legacy Symfony 2.x footprint. Even there, feasibility is marginal. The package is a low-signal artifact: 5 stars, 0 dependents, and it duplicates a far more established capability (FOSJsRoutingBundle). Zero dependents on Packagist means essentially no production evidence and no downstream consumers exercising it. Anyone proposing it is likely re-implementing or forking FOSJsRoutingBundle behavior without the maintenance base.

Technical risk — high, on multiple independent axes.

  • Lifecycle risk (dominant): Symfony 2.8 reached end of life in November 2018 and has received no security fixes since. Any application still on Symfony 2.x is carrying unpatched framework CVEs regardless of this bundle. Adopting a bundle into an EOL framework compounds an existing compliance problem.
  • Abandonment risk: No release cadence, no maintainer signal, no CVE intake process. If a route-dump endpoint is found to leak privileged route names, remediation is on us.
  • Compatibility risk: Symfony 2-era bundles routinely pin symfony/framework-bundle: ~2.x, PHP 5.5–7.0 constraints, and Assetic-era asset assumptions. These constraints will block PHP 8 upgrades and can hold an entire composer.lock hostage.
  • Security surface: JsRouting works by dumping the route table to the client. The default Symfony route table includes admin, internal API, and debug routes. Misconfiguration here is an information-disclosure finding, not a cosmetic bug.
  • Correctness risk: Route/JS drift — client-side route names are strings with no compile-time linkage to server-side definitions. Renames fail at runtime in the browser, not at build time.

Key questions for the requester:

  1. What is the actual runtime stack — Laravel, Symfony, or both? The brief says Laravel; the package says Symfony2. These cannot both be true and this must be resolved before any further work.
  2. If Laravel: is the requirement genuinely unmet by Ziggy, which is actively maintained and handles route exposure, middleware-scoped filtering, and TypeScript types?
  3. If a legacy Symfony app exists: what Symfony minor version, what PHP version, and is it on a funded remediation roadmap?
  4. What data classification flows through exposed route names — are admin or internal endpoints in scope?
  5. Who owns the fork if we vendor this? Name a person, not a team.

Integration Approach

Stack fit — no. There is no supported path from a Symfony2 bundle into a Laravel application. Laravel's service container, HTTP kernel, routing facade, and asset pipeline are structurally different. Any "integration" would be a port of the bundle's logic into Laravel idioms, at which point the package contributes nothing but inspiration and the port carries all the maintenance burden. Recommend rejecting the package and restating the requirement.

Recommended target by stack:

Stack Recommended approach Rationale
Laravel (stated) Ziggy Purpose-built, active, Blade @routes directive, per-route filtering
Symfony (if legacy) FOSJsRoutingBundle on a maintained Symfony LTS Established successor with the same API shape
Symfony 2.x (frozen, no upgrade budget) Vendor and fork this bundle, or dump routes at build time via a static artifact Only justified if the app is genuinely immovable

Migration path (Laravel assumption). Install Ziggy, replace hardcoded URL strings in JS with route() calls, and remove the JsRouting concept from the design entirely. Effort is measured in hours to low days for a typical app; the real cost is auditing existing hardcoded URLs. If the team already prototyped against this bundle's API surface, the migration is a rename with a thin adapter — the client-side call signature (Routing.generate('name', params)) is portable to Ziggy's route().

Compatibility constraints to verify before any decision. Inspect composer.json for the symfony/* version pins and PHP floor. A ~2.x framework constraint is a hard blocker on any Symfony 3+ or PHP 8 modernization effort and is the single most likely way this package causes collateral damage beyond its own footprint. Check whether it requires Assetic; if so, the asset pipeline coupling is a second blocker.

Sequencing:

  1. Resolve the stack question. One day. Everything downstream depends on it.
  2. Requirement restatement. Write down the actual user story ("JS templates must not hardcode route paths") and the acceptance criteria (route filtering, param encoding, no privileged route exposure).
  3. Vendor decision. Default to build/use-maintained-tool. Adopting this package requires a written justification from an engineer naming the owner and the fork policy.
  4. Pilot in a single app, non-production, behind a feature flag. Measure the exposed route count and confirm filtering works.
  5. Deprecation checkpoint at 90 days: if the fork has no commits and no incidents, keep it frozen; if it has incidents, escalate to replacement.

Operational Impact

Maintenance. Assume zero upstream support from day one. The package must be vendored into the repo or pinned with a commit hash; relying on Packagist resolution against a 0-dependent, low-activity package risks a yanked tag breaking builds. Budget a standing maintenance line — realistically a fraction of an engineer — for security review of the dump endpoint and for unblocking Composer upgrades. Compare against Ziggy or FOSJsRoutingBundle, where that cost is amortized across a community.

Support. No vendor, no SLA, no CVE process, no release notes. Incident response falls entirely to internal engineers reading source. For a package that touches the route table — an authentication-adjacent surface — this is the weakest part of the proposal. Escalation path is "the one engineer who read the code," which is a bus-factor-1 risk.

Scaling. Negligible runtime impact. The route dump is a serialization of a bounded set of route definitions, cacheable at the CDN or edge, and typically generated at deploy time rather than per-request. Route tables in the thousands are still small payloads. Scale is not the objection here; lifecycle is.

Failure modes to plan for:

  • Privileged route disclosure — dump includes admin/internal routes. Mitigate with an explicit allowlist, not a denylist.
  • Route/JS drift — server-side rename breaks browser-side generate() silently. Mitigate with a smoke test that asserts every client-referenced route name exists in the dump.
  • Framework-upgrade lock — symfony/* pins block PHP or Symfony upgrades. Detect in CI with a composer why-not gate.
  • Abandonware break — Packagist tag removal or a transitive dependency conflict halts builds. Mitigate by vendoring.
  • Cache staleness — stale route dump served post-deploy causing 404s on new routes. Mitigate with deploy-keyed cache busting.

Ramp-up. Low technical complexity — the concept is a route serializer, and an engineer familiar with either framework can read the source in an afternoon. The risk is inverted: onboarding is cheap, but there is no documentation, no examples, and no community to ask. Knowledge concentrates in whoever did the initial read, which is exactly the profile you want to avoid for an auth-adjacent component.

TPM recommendation. Do not adopt. The package is functionally superseded, targets an end-of-life framework, has no dependent base, and conflicts with the stated Laravel stack. Close the ticket as "won't do — use Ziggy," and open a separate line item only if a genuine Symfony 2.x estate is confirmed, in which case the conversation is about framework remediation, not bundle selection.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager