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

Jquery Bundle Laravel Package

evheniy/jquery-bundle

Symfony2 bundle that provides jQuery from Google CDN or a local path, with configurable version, CDN domain, HTML5/legacy script tags, and async loading. Install via Composer and register JqueryBundle in AppKernel.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This package is not a Laravel package — it is a Symfony2 bundle (evheniy/jquery-bundle), and its entire surface area is a service-provider-style bundle class plus a Twig helper that emits <script src="...ajax.googleapis.com/...jquery...">. There is no Laravel service provider, facade, config publishing, or container binding, so it cannot be installed into a Laravel application and "just work." The architectural mismatch is the headline finding: adopting it would mean introducing Symfony bundle conventions into a Laravel codebase purely to obtain a single CDN <script> tag.

Integration feasibility. Functionally, the value delivered is one line of HTML. Everything the bundle does can be reproduced in a Blade partial or a config value in minutes, which makes the integration feasible only as a replacement exercise, not an adoption exercise. The practical path is to copy the idea (a versioned jQuery CDN reference) and discard the package.

Technical risk. High and asymmetric:

  • Abandonment. Last release 2016-06-06, 3 stars, 0 dependents. No maintainer, no security response process, no issue triage.
  • Platform EOL. Symfony2 reached end of life in 2018; Twig 1.x/2.x APIs used by bundles of this vintage were removed in Twig 3. Composer resolution against a modern PHP 8.x / Symfony 6–7 stack will likely fail outright or require --ignore-platform-reqs, which is itself a red flag.
  • Supply chain / CDN. The bundle hardcodes ajax.googleapis.com. That means no Subresource Integrity, no version pinning guarantees, a third-party request on every page load, GDPR/privacy review implications, CSP allow-listing, and a runtime availability dependency on Google infrastructure.
  • Known CVEs. jQuery versions of that era (1.x/2.x, early 3.x) carry documented XSS advisories (e.g., CVE-2020-11022/11023), and jQuery 1.x/2.x are end-of-life upstream. A bundle that only exposes a version string inherits all of that risk with none of the patching.
  • Score context. Overall score 1.245 with an opportunity score of 13.01 signals a low-value, low-momentum artifact — the effort to integrate exceeds the effort to reimplement.

Key questions for the requester.

  1. Is the target application actually on Symfony2, or is this a mis-tagged request for a Laravel project? If Laravel, the answer is "not applicable — use the asset pipeline."
  2. What is the underlying business driver — jQuery availability, version management, or legacy front-end compatibility?
  3. Does the project have a policy exception for third-party CDN scripts, and can we add SRI + CSP directives?
  4. Is there an internal fork-and-own mandate, or is the goal strictly to remove the dependency?
  5. Which jQuery version and which browser matrix does the product actually require?

Integration Approach

Stack fit. Poor for Laravel, marginal even for Symfony. For a Laravel 9/10/11 application the idiomatic equivalents are: npm install jquery consumed through Vite (Laravel 10+) or Laravel Mix (older), with @vite/mix() in Blade. For a Symfony application still on the legacy stack, the modern equivalents are AssetMapper or Webpack Encore with symfony/asset and twig asset functions. In both cases the bundle is the wrong layer of abstraction.

Migration path.

  1. Inventory every template that references the bundle's Twig helper or relies on the jquery.version config key.
  2. Lift the version reference into environment/config (JQUERY_VERSION or an asset manifest entry) so the version is no longer owned by the package.
  3. Move to the local asset pipeline — bundle jQuery through npm/yarn so it is versioned, lockfiled, and served from first-party origin.
  4. If a CDN must remain, pin an exact version, add integrity and crossorigin attributes, and allow-list the host in CSP.
  5. Remove the bundle from composer.json, delete the config block, and confirm the rendered HTML is byte-equivalent apart from the script source.

Compatibility. Expect the following blockers: PHP constraint of ~5.3–7.x, PSR-0 autoloading assumptions, Symfony\Component\HttpKernel\Bundle\Bundle base class, Twig extension signatures incompatible with Twig 3, and Composer 2 strictness on abandoned packages. Treat any successful install as an accident rather than a signal.

Sequencing. Do the spike first (half a day, prove the bundle installs or doesn't), then the replacement path. Do not sequence the bundle adoption ahead of an asset-pipeline decision, because the pipeline decision subsumes it. If the organization is mid-migration to Vite, defer this entirely and fold it into that workstream — it is a line item, not a project.

Operational Impact

Maintenance. Effectively unmaintained. There is no release cadence, no maintainer responsiveness, and no security advisory channel. The realistic maintenance model is "we own a fork," and while the code is small enough to fork cheaply, a fork creates a permanent upgrade tax every time PHP, Composer, or Symfony majors move. A TPM should budget for removal, not sustainment.

Support. No community, no Stack Overflow footprint, no vendor. Any incident routes directly to the internal team, and there will be no upstream fix for compatibility breaks. Documentation is a README with a single config snippet.

Scaling. Runtime scaling impact is nil — the bundle emits static HTML and holds no state, no cache, no I/O of its own. The scalable concern is the external dependency: one additional third-party origin on the critical path of every page, with DNS, TLS, and CDN edge availability in the blast radius. At high traffic this is a latency and availability multiplier, not a throughput problem.

Failure modes.

  • CDN outage or regional degradation → unstyled/script-broken pages with no first-party fallback.
  • CSP or SRI policy enforcement blocking the script silently.
  • Unpinned CDN URL drifting to a newer jQuery and breaking plugin assumptions.
  • jQuery CVE disclosed → no patched release path through the bundle.
  • Composer resolution failure blocking unrelated package upgrades — the most likely and most annoying failure, since it looks like an unrelated CI break.
  • Twig/Symfony upgrade removes the extension method → fatal template error at render time, not at deploy time.

Ramp-up. Technically shallow: a mid-level engineer can read the entire package in under an hour and replace it with native pipeline code in one to two days including regression checks. The real ramp-up cost is organizational — negotiating the security exception for the CDN, confirming the browser/jQuery version matrix, and coordinating the removal across templates. Estimate one sprint-week end-to-end for a small team, dominated by review and testing rather than engineering.

Recommendation. Do not adopt. Replace with the platform-native asset pipeline; if the goal is simply "jQuery is available in templates," that is a three-line change and does not warrant a third-party dependency with a 2016 release date and zero dependents.

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.
unabomber/timezone
delatbabel/contacts
astritzeqiri/g-recaptcha
kevinongko/laravel-genode
developeruz/laravel-analytics
robbiep/afterthedeadline
frankkessler/incontact-laravel-oauth2-rest
jlxh/laravel-userlog
davidmgilo/timetables
qylinfly/role-permission
reflect-digital/conduit
takashato/laravel-vietqr
aitor24/laralang
kraenzle-ritter/entity-relations
dindigital/din-image
pomirleanu/image-colors
sawmainek/laravel-api-generator
delatbabel/jsonresponses
mouhamedfd/permissions-generator
eduplus/qr