face/commander-bundle
A PHP bundle that integrates Commander-style command handling into your application, giving you a structured way to define, register, and run commands through the framework's service container and configuration.
RegisterUser, IssueRefund) or stay as ad-hoc service calls. That is a maintainability and onboarding decision, not a features decision — but it gates how fast we can add features later.stefvaessen/CommanderBundle, published under the face/ vendor). If our codebase is Laravel, this package is not installable as-is — the decision collapses to "copy the pattern" or "use Illuminate\Bus." Confirm the framework before spending evaluation time.Consider it only if all of the following hold:
face/ ecosystem, or this bundle is a transitive/legacy dependency you must keep.Look elsewhere — in practice, almost always — when:
Illuminate\Bus / the container's dispatch() and job queues. Zero new dependencies, framework-supported, already documented for the team.CommandBus interface plus a container-backed handler locator is small, testable, and yours to evolve — and it removes an unvetted third party from the critical path of every write operation.For executives (one paragraph): We evaluated a small open-source PHP package that implements the "command handler" pattern — a way of structuring how the application performs write operations so each one is a named, isolated, testable unit. The pattern is sound and widely used; this particular package is not a viable dependency. It has no users, no stars, no maintainers beyond a single author, and it targets Symfony rather than our Laravel stack. Recommendation: do not adopt. If we want the pattern, we get it for free from Laravel's built-in job/bus system, or we write roughly a hundred lines of our own code that we control. Net cost of the recommended path is a few engineering days, zero new supply-chain risk, and no vendor lock-in.
For engineering (the substance):
Illuminate\Bus with one-action job classes as our command handlers and a thin CommandBus interface if we want framework independence. On Symfony, use Messenger's synchronous transport — it's first-party, documented, and gives us an upgrade path to async for free.How can I help you explore Laravel packages today?