weblabel/worker-bundle
Symfony bundle for integrating Weblabel worker services into your application. It simplifies configuring and running background worker processes, helping you offload time-consuming jobs and keep web requests fast and responsive.
First, the reality check: weblabel/worker-bundle is a Symfony bundle, not a Laravel package. There is no service provider, no facade, no config/worker.php. It is designed to be registered in a Symfony kernel via config/bundles.php and configured through Symfony's DI extension system. A Laravel developer evaluating this should treat it as "a library of PHP classes you may be able to borrow from," not something you composer require and php artisan vendor:publish.
If you are in a Symfony codebase (or a Laravel app that already embeds Symfony components):
composer require weblabel/worker-bundle — verify the PHP and Symfony version constraints in composer.json before committing; with 0 stars and 0 dependents, the version matrix is likely narrow.config/bundles.php:
return [
// ...
Weblabel\WorkerBundle\WeblabelWorkerBundle::class => ['all' => true],
];
bin/console config:dump-reference weblabel_worker to discover the actual configuration tree. The extension alias is almost certainly weblabel_worker (Symfony convention derives it from the bundle name), but confirm rather than assume — this is the single fastest way to understand what the bundle actually does.bin/console list and look for commands prefixed with the bundle's namespace. A worker bundle almost always ships a worker:run, worker:consume, or similar long-running command.Where to look first in the repo: DependencyInjection/ (tells you the config schema and available services), then Command/ (tells you the actual entry points), then composer.json (tells you whether this is even installable on your stack). Skip the README until you've seen the DI extension — for a 0-star bundle, the code is more trustworthy than the docs.
First use case: pick the simplest job your app has (sending an email, generating a thumbnail) and wire it through the bundle end-to-end in a scratch branch. You want to know within an hour whether the bundle's model of "a worker" matches yours before you build anything real on it.
Service-tagging pattern. Symfony worker bundles typically discover work via tagged services (e.g. kernel.event_listener or a custom weblabel_worker.job tag). If that's the case here, your job handlers are plain services — no base class inheritance required, which makes them unit-testable in isolation:
# config/services.yaml
App\Worker\SendInvoiceEmail:
tags: ['weblabel_worker.job']
Run under a process manager, never in a terminal. Long-running consumers should be supervised (Supervisor, systemd, or Symfony's own messenger:consume if the bundle delegates to Messenger). Give the process a restart policy and rotate logs — you will not be watching it.
Dispatch from the request cycle, consume out-of-band. The healthy pattern is: controller writes an intent (DB row, queue message, whatever the bundle's transport is) and returns immediately; a separate worker process drains it. If the bundle encourages synchronous execution inside the HTTP request, that is a design smell for anything slow.
Laravel-side integration. If you are trying to use this from Laravel, the only realistic patterns are:
illuminate/queue + php artisan queue:work. You get first-class Horizon, retries, and failed-job handling for free.Testing. Register jobs as services and call their handle/__invoke methods directly in tests. Reserve end-to-end worker tests for a single smoke test — spinning up the real worker loop in CI is slow and flaky.
WeblabelWorkerServiceProvider. Do not spend an afternoon looking for one; there isn't one, and there won't be.config:dump-reference weblabel_worker fails, try variations or grep getAlias() in DependencyInjection/.--limit/--max-jobs/--time-limit option if it exists; if it doesn't, wrap the command in a supervisor config with stopwaitsecs and periodic restarts.wait_timeout (default 8h). Long workers will throw "server has gone away." Reconnect on failure or restart workers more often than the timeout.pcntl_signal handling in the command; if it's absent, that job can be interrupted at an arbitrary point and you must make handlers idempotent.APP_DEBUG=0 and a dedicated log channel for workers. Debug-mode container rebuilds on every job will destroy throughput.How can I help you explore Laravel packages today?