webparking/laravel-queue-ensurer
Keeps Laravel queue workers alive by monitoring your queues and automatically restarting stalled or missing workers, so background jobs keep processing without manual intervention or custom health checks.
Version 1.3.0 is the first release in this line to declare Laravel 8 support, so it is the minimum version to target on any Laravel 8 application. Start by confirming the constraint actually resolves:
composer require <vendor>/<package>:^1.3
composer show <vendor>/<package>
Then check three places before writing any code:
composer.json of the package — verify illuminate/support (and any other Illuminate constraints) allow ^8.0, and note the PHP floor. Laravel 8 runs on PHP 7.3+, but a package may still pin ^7.4.extra.laravel.providers) or needs manual registration in config/app.php. On Laravel 8 auto-discovery is on by default, so most installs need nothing.config, migrations, views, assets are typically separate tags. Publish only what you intend to own.The fastest first use case is a smoke test on a throwaway branch: install on Laravel 8, publish config, run the package's own test suite or a single representative call in php artisan tinker. That surfaces constraint problems in minutes rather than at deploy time.
Upgrade path from Laravel 7. Move the application and this package in the same composer update so the solver sees the full graph. If other dependencies still pin illuminate/* ^7.0, resolve those first — a partial update will fail with a confusing conflict message that points at this package even when it isn't the culprit.
Registration. With auto-discovery, no config/app.php edit is required. If you disable discovery or the package predates it, register the provider manually and mirror any aliases the README lists. Prefer resolving the package from the container (app(...), constructor injection, or a facade) over new-ing classes, so test doubles and config overrides apply.
Configuration. Publish config, then edit the published file rather than calling config()->set() at runtime. Anything environment-specific belongs in .env and should be read through the published config file, not directly via env() in your own code — env() returns null once config:cache has run.
Queues and scheduling. If the package does work that can be deferred, wrap it in a job rather than calling it inline in a request. This is the single biggest day-to-day lever for a package that touches external services, and it also makes failures retryable and observable.
Testing. Use RefreshDatabase if the package ships migrations, and publish them into database/migrations in the test suite rather than relying on the vendor path. Assert against the package's public API, not internals, so a 1.x patch bump doesn't break your tests.
CI matrix. With Laravel 8 support landing in 1.3.0, run at least Laravel 8 on PHP 7.4 and 8.0, plus the previous Laravel version you still support. This package's own compatibility is only as good as your matrix proves it to be.
Database\Factories — actually the class namespace changed from the Factory suffix convention to Database\Factories\{Model}Factory. Any package that ships factories or references string-based factory names (factory(App\User::class)) may behave differently. Check whether the package ships factories at all before assuming this applies.composer update vs require. Running composer update <vendor>/<package> alone can leave stale lock entries for transitive Illuminate packages. Use composer update <vendor>/<package> --with-dependencies when moving Laravel majors.php artisan package:discover and php artisan config:clear. A stale bootstrap/cache/packages.php produces "class not found" errors that look like a broken install.php artisan config:cache in your deploy script; publishing afterwards silently has no effect until the cache is rebuilt.^1.3 rather than ^1.0. A lockfile regenerated on a different machine could otherwise resolve to 1.2.x and quietly drop Laravel 8 support.1.2.x...1.3.0 on the repository before upgrading a production app, and check whether the package's own CI actually tests Laravel 8 or merely widened the constraint.How can I help you explore Laravel packages today?