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
Command Dispatcher Bundle

Command Dispatcher Bundle Laravel Package

jeckel-lab/command-dispatcher-bundle

A Symfony bundle providing a lightweight command dispatcher for decoupling actions from their handlers. Dispatch command objects through a configurable bus, add middleware for cross-cutting concerns, and keep controllers thin with clean, testable service wiring.

View on GitHub
Deep Wiki
Context7

Jeckel Lab Command Dispatcher Bundle integrates a lightweight command dispatcher into Symfony applications. It connects commands to their handlers through the service container, helping keep controllers and application services decoupled while providing a clear, testable path from input to domain logic.

  • Symfony bundle integration with service registration and configuration
  • Command-to-handler resolution via the dependency injection container
  • Container-aware handler wiring for clean service composition
  • Decoupled architecture that supports testable application code
  • Composer-ready installation and straightforward setup
Frequently asked questions about Command Dispatcher Bundle
Can I install jeckel-lab/command-dispatcher-bundle in a Laravel application?
Composer may resolve the package since it is a small MIT-licensed library, but installing it accomplishes nothing in Laravel. The package ships no Laravel service provider, and Laravel has no mechanism for registering a Symfony Bundle class, loading its DependencyInjection Extension, or running its compiler passes. Without that wiring the command dispatcher is never bootstrapped, so there is nothing to dispatch to.
What does this Symfony bundle actually do?
It integrates the command dispatcher pattern into a Symfony application by registering commands, handlers, and middleware through the Symfony service container. Handlers are discovered via service tagging and autoconfigure, and a compiler pass wires the dispatcher together so controllers can dispatch commands without knowing about the handlers. The value is in the Symfony-specific wiring rather than in the dispatcher logic itself.
Why can't Laravel load a Symfony bundle?
A Symfony bundle integrates through a Bundle subclass, a DependencyInjection Extension with a Configuration tree, compiler passes, and service tagging with autoconfigure. Laravel's extension surface is completely different: service providers, config/*.php merges, container bind and singleton calls, and Illuminate\Contracts\Bus. There is no supported path to load a Symfony bundle in a Laravel application, so the integration surface of this package simply does not exist on Laravel.
What is the Laravel-native alternative to this package for a command bus?
Laravel already ships a first-class command bus. You can use dispatch(), Bus::map() for command-to-handler mapping, the Dispatchable trait, queued command handlers, a middleware pipeline, and ShouldQueue for async dispatch. A small first-party implementation of the same pattern is typically a one-to-three day spike and carries zero third-party risk.
Does the package support Laravel 10, Laravel 11, or recent PHP versions?
No. There is no Laravel version support at all because the package is a Symfony bundle, and its last release was 2021-12-03 with no PHP 8.2, 8.3, or 8.4 compatibility work. Even in a Symfony shop the first blocker would be version-constraint collisions against modern Symfony components. Treat any Laravel or current-PHP support claim as unsupported.
Is jeckel-lab/command-dispatcher-bundle still maintained?
The project shows one GitHub star, zero dependents, a single author, and a last release date of 2021-12-03. That combination means no security patching and a bus factor of one, so abandonment risk is near certain. Supply-chain risk is low because the surface is small and MIT-licensed, but do not expect fixes, releases, or framework updates.
Can I port the bundle's command dispatcher logic into a Laravel service provider?
Yes, technically it is viable. The dispatcher and handler-resolution logic is likely only a few hundred lines, which you could re-express as a Laravel service provider with attribute-based or interface-based handler discovery. The catch is that you would then be maintaining a fork of an abandoned one-star package for the sake of its design, not its code, and you would inherit an unpinned symfony/dependency-injection and symfony/http-kernel dependency graph that version-skews against the Symfony components Laravel already consumes.
Does the bundle provide middleware, transactions, or async dispatch like Laravel's bus?
The bundle registers middleware through the Symfony container, but Laravel's bus already covers the same ground natively with middleware pipelines, ShouldQueue for async handlers, and transaction handling via DB::transaction around dispatch. Because the Symfony middleware wiring cannot be loaded in Laravel, none of that container-based configuration transfers. Re-implement the semantics you actually need on Laravel's bus rather than trying to reuse the bundle's.
Are there maintained alternatives if I need a command bus with middleware?
For a Laravel application the strongest option is Laravel's own bus with a custom middleware pipeline, since it is maintained, documented, and already installed. If you want a third-party abstraction, league/tactician with a Laravel bridge and laravel-command-bus style packages are the mature adjacent options. Avoid adding a Symfony bundle plus a shim when the native bus already supports middleware and queued commands.
Is it worth running the Symfony bundle as a separate service alongside a Laravel app?
Only if your organisation already operates Symfony services today or on the near-term roadmap. In that case the bundle lives in its own deployable and Laravel talks to it over HTTP or a queue, which is an anti-corruption-layer decision rather than a package adoption. If no part of the estate runs Symfony, this package has no home and should not be adopted as a dependency.
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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core
nodisrupt/laravel-agent
sierratecnologia/media-manager