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.
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:
--ignore-platform-reqs, which is itself a red flag.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.Key questions for the requester.
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.
jquery.version config key.JQUERY_VERSION or an asset manifest entry) so the version is no longer owned by the package.integrity and crossorigin attributes, and allow-list the host in CSP.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.
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.
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.
How can I help you explore Laravel packages today?