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
Jetpack Autoloader

Jetpack Autoloader Laravel Package

automattic/jetpack-autoloader

Composer autoloader drop-in for WordPress and PHP projects that avoids class conflicts across bundled plugins/themes. Provides a custom autoloader to isolate vendor libraries, improve compatibility, and reduce “cannot redeclare class” errors in complex installs.

View on GitHub
Deep Wiki
Context7

[READ ONLY] Autoloader for Jetpack. This repository is a mirror, for issue tracking and development head to: https://github.com/automattic/jetpack

Frequently asked questions about Jetpack Autoloader
Can I use this autoloader in a Laravel project to fix dependency conflicts between plugins/packages?
Yes, but with caveats. This autoloader prioritizes the latest version of conflicting packages, which can resolve version clashes in Laravel plugin systems or multi-tenant SaaS apps. However, it’s not a drop-in replacement for Laravel’s default autoloader and requires merging its classmap with Laravel’s PSR-4 autoloader.
How do I install this in Laravel without breaking the default autoloader?
Add `automattic/jetpack-autoloader` to `composer.json`, then run `composer install`. To avoid conflicts with Laravel’s autoloader, place the autoloader in a custom `vendor` directory (e.g., `./plugins/vendor`) and merge its classmap with Laravel’s during bootstrap. Override Laravel’s `register()` method in a service provider to include the Jetpack autoloader.
Will this work with Laravel’s PSR-4 autoloading, or is it only for classmap-based packages?
This autoloader converts PSR-4/PSR-0 packages to classmaps at runtime, so it *can* work with Laravel’s PSR-4 dependencies. However, it introduces minor overhead during autoload generation. Use `--optimize` with `composer dump-autoload` to mitigate performance impact.
What Laravel versions are supported, and are there PHP version requirements?
This package requires **PHP 7.2+** and **Composer 2.2+**, which aligns with Laravel 8+. Laravel 9/10 users should verify compatibility, as the package hasn’t been updated since 2021. Test thoroughly with PHP 8.1+ due to potential unpatched deprecations.
How does this handle conflicts if only *some* Laravel packages use this autoloader?
The autoloader **only guarantees version isolation if *all* conflicting packages use it**. If even one package relies on Laravel’s default autoloader, conflicts may persist. This is a critical limitation—ensure all shared dependencies (e.g., `monolog/monolog`) are migrated to this system.
Does this slow down Laravel’s bootstrap or API responses?
Yes, there’s a **~50–100ms overhead** during first load due to transient caching for plugin discovery. Classmap generation during `composer dump-autoload` can also slow deployments unless you use the `--optimize` flag. For high-traffic Laravel APIs, test under load to confirm acceptability.
Can I debug autoloader issues in Laravel, or are the tools WordPress-specific?
Debugging tools like `JETPACK_AUTOLOAD_DEBUG_*` are WordPress-focused (e.g., plugin hooks). In Laravel, use `try-catch` in service providers to log errors, as Jetpack’s debug output may conflict with Laravel’s exception handling. Check for missing `vendor/autoload_packages.php` if classes fail to load.
What happens if a package moves, renames, or changes namespaces after installation?
The autoloader builds its classmap **once at load time**, so renamed or moved classes may fail to autoload after updates. Monitor for `ClassNotFoundException` errors and regenerate the classmap with `composer dump-autoload` if packages are refactored.
Are there alternatives for Laravel that handle dependency conflicts better?
For Laravel, consider **Composer’s native `--prefer-stable`** or **dependency plugins** like `composer/merge-plugin` to resolve conflicts. For advanced isolation, use **Laravel’s `config/app.php` `providers`** to load packages in a controlled order or explore **PHP’s `spl_autoload_register`** with custom logic. This package is niche for Laravel but useful in hybrid WordPress/Laravel setups.
How do I force development versions of packages during testing?
Set the `JETPACK_AUTOLOAD_DEV` constant to `true` before loading the autoloader. This makes the system prefer `dev-` prefixed versions or `9999999-dev` over semantic versions. Example: `define('JETPACK_AUTOLOAD_DEV', true);` before requiring `vendor/autoload_packages.php`.
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.
tobya/saloonfire
kjmtrue/laravel-debugbar
hexincorp/debugbar
razorbacks/laravel-shibboleth
adilazhari/laravel-idempotency
mamitech/laravel-slow-query-log
mamitech/laravel-http-logger
medeirosrafael/docxmustache
webdevlabs/phreak
vis/log-envelope
digitickets/lalit
acacha/names
scool/foundation
frankkessler/guzzle-oauth2-middleware
delatbabel/site-config
delatbabel/applog
eusonlito/laravel-gettext
henzeb/housepedia-intelligence-laravel
aliqsm/laravel-authkit
itsjustvita/laravel-wp-migrator