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

Jaxon Core Laravel Package

jaxon-php/jaxon-core

Jaxon core lets PHP classes and functions be called directly from JavaScript in Ajax applications. It exports server-side code to the browser, handles incoming Ajax requests, generates responses, and manages the client-side Jaxon object with configuration and plugins.

Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • jaxon-php/jaxon-core is a framework-agnostic PHP library, not a Laravel package. It implements a server-driven AJAX RPC model: PHP classes are exposed (attributes/annotations), JS proxy objects are generated from them, and a single HTTP endpoint receives calls and dispatches back into PHP.
  • That model overlaps with concerns Laravel already owns — routing, middleware, the container, validation, session, CSRF, and exception rendering. Jaxon brings its own request/response lifecycle, config layer, plugin system, and JS generation on top.
  • Fit is strongest for teams porting xajax/Jaxon applications or deliberately wanting PHP-class-to-JS ergonomics on a Blade page. Fit is weak for API-first, Inertia, Livewire, or React/Vue stacks where Laravel JSON controllers or Livewire already solve the problem with fewer moving parts.
  • Core alone is not a complete client runtime; expect to add a Jaxon export/driver package (e.g., the jQuery exporter) to emit usable JS. That dependency should be evaluated as part of the same decision.

Integration feasibility

  • Composer-installable, PSR-4, BSD-3-Clause — low legal friction and no packaging blocker.
  • No first-party Laravel service provider in core, so integration glue is ours: provider registration, config merge/publish, route registration under a dedicated prefix, middleware for auth and CSRF, and exception mapping so Jaxon errors do not bypass Laravel's handler.
  • Feasible as a bounded, single-feature integration. Not feasible as an unattended drop-in.

Technical risk

  • Adoption signal is weak: 74 stars and a composite score of ~20.9 indicate a niche ecosystem. Treat this as a tactical tool, not a platform bet.
  • Repository metadata is reported as unknown, which limits our ability to independently verify CI status, issue activity, and release hygiene — a supply-chain/verification gap to close before adoption.
  • Small maintainer base implies bus-factor risk. The permissive license permits forking, but forking a JS-generating library is not cheap.
  • Security surface is the exposed-method surface: anything exposed is callable from the browser. Authorization must be enforced per method, not only at the route or middleware level.
  • Paradigm risk: annotation/attribute-driven code generation and jQuery-era AJAX conventions conflict with current Laravel front-end norms and with most hires' existing mental models.

Key questions

  • Who maintains it, and what is the actual release cadence behind the 2026-10-23 release? Is there a security disclosure process?
  • What is the supported matrix for PHP 8.2/8.3/8.4 and Laravel 10/11/12?
  • Which export package and JS runtime do we need, and what is the client payload/footprint?
  • Can it be mounted inside an existing web middleware group with Laravel auth and CSRF intact, or does it require its own session and token handling?
  • How are validation errors, authorization failures, and exceptions serialized to the client?
  • Can exposure be allowlisted per environment so production only serves reviewed classes?
  • Is there an official or community Laravel adapter we would be inheriting rather than writing?

Integration Approach

Stack fit

  • PHP/Laravel: yes, as a route-scoped subsystem. Front end: only if the page is Blade plus a conventional JS layer; otherwise the value proposition collapses against native Laravel JSON endpoints or Livewire.
  • Best evaluated against a concrete legacy requirement (existing xajax/Jaxon code, PHP-class-driven AJAX generation) rather than as a greenfield architecture choice.

Migration path

  • Start with one exposed class and one page. Add the Composer dependency, write a thin service provider (config merge/publish, singleton bindings, route registration), and mount the endpoint under a dedicated prefix.
  • Wrap the endpoint in the intended middleware (auth, CSRF, throttling) and confirm the client sends the token in the form Jaxon expects. Map Jaxon exceptions into Laravel's handler so failures return consistent payloads.
  • If migrating from xajax or Jaxon 4, expect config and API renames between majors and plan to re-verify all generated JS, not just server code.

Compatibility

  • Verify the package's PHP constraint against the target Laravel version's floor before committing; a mismatch here is a hard stop.
  • Confirm behavior under php artisan route:cache (closure-based route definitions break caching) and under Laravel's session driver, CSRF middleware, and global middleware that may assume JSON responses.
  • Generated JS assets need explicit cache busting/versioning; version skew between deployed JS and server classes is a predictable incident.

Sequencing

  1. Timeboxed spike: one class, one page, measure integration LOC, JS payload, and developer friction.
  2. Harden: auth, CSRF, per-method authorization, error serialization, exposure allowlist.
  3. Test: HTTP-level tests against the Jaxon endpoint plus a JS smoke test in CI.
  4. Document conventions and the expose/deny pattern; keep the adapter thin and isolated.
  5. Roll out to a second, differently shaped feature before making a broader commitment.
  6. Make the build-vs-buy call at the end of the spike, with the fallback being native Laravel controllers.

Operational Impact

Maintenance

  • We own the Laravel adapter; the vendor owns core. Pin the version, track changelogs, and expect breaking changes across majors.
  • Low community means fewer answers, examples, and third-party fixes; internal documentation is the primary knowledge base.
  • Keep the adapter small enough that replacing Jaxon with native controllers remains a contained refactor.

Support

  • No vendor SLA. Support is GitHub issues and project docs. Internal expertise will concentrate in the engineer who builds the adapter — an explicit bus-factor to mitigate through docs and pairing.
  • BSD-3-Clause gives us a fork option if the project is abandoned, but budget that as a real cost, not a formality.

Scaling

  • The endpoint behaves like normal PHP-FPM traffic and scales horizontally provided sessions are shared (Redis/database). No async or queue semantics; a slow exposed method occupies a worker.
  • Watch session locking when a single page fires concurrent AJAX calls, and watch generated-JS payload growth as exposed classes accumulate.
  • File-upload paths may bypass Laravel's upload validation and temporary-storage conventions and need separate review.

Failure modes

  • 419 CSRF failures from incorrect token plumbing.
  • 500s rendered in Jaxon's error format instead of Laravel's, breaking client-side error handling.
  • Stale or unversioned generated JS after deploy.
  • Route collision or authorization bypass if the endpoint is registered outside the intended middleware group.
  • Unauthorized method invocation when exposure is class-level rather than method-level.
  • Session regeneration logging users out mid-call.
  • Silent no-ops when client proxies and server classes drift.

Ramp-up

  • Roughly 1–2 developer-days for a senior Laravel engineer to reach a working spike; 1–2 weeks to production-harden the adapter, authorization, tests, and documentation.
  • Ongoing onboarding cost is real: Jaxon is uncommon, and the skills do not transfer to the rest of the Laravel codebase. Factor that into the total cost of ownership rather than evaluating the package on integration effort alone.
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
cgv/localized-resource