- Is elcodi/state-transition-machine-bundle a Laravel package?
- No. It is a Symfony bundle from the Elcodi e-commerce suite, published as a read-only subtree split of the main elcodi/elcodi repository. It relies on Symfony bundle conventions such as kernel registration, a YAML configuration tree and container service IDs, none of which map onto Laravel's service container, package discovery or event system. There is no Laravel service provider or facade in this package.
- Can I install elcodi/state-transition-machine-bundle in a Laravel app with Composer?
- Composer may resolve the package, but installing it gives you a Symfony integration layer you cannot use and pulls in legacy Symfony dependencies for no functional gain. You would still have to write the Eloquent persistence, event dispatch and transaction glue yourself. Treat a dependency conflict during install as a cheap early signal to stop and pick a different approach.
- Does this bundle contain the actual state machine implementation?
- No. This package is only the Symfony wiring; the transition logic lives in the separate elcodi/state-transition-machine component. Adopting the bundle therefore gets you integration code you cannot use and does not get you the engine you actually want. If the logic interests you, the component is the thing to spike on, not the bundle.
- How do I configure a state machine in Laravel using this bundle?
- You cannot, in any Laravel-native way. The bundle expects Symfony kernel registration, a YAML config tree and service IDs for each state machine, all of which are meaningless inside a Laravel application. Any Laravel port would mean extracting the transition logic and re-wrapping it behind a Laravel contract or facade of your own design.
- Which Laravel and PHP versions does elcodi/state-transition-machine-bundle support?
- This is unverified and likely unfavorable. The bundle comes from the Symfony 2 and 3 era of the Elcodi suite, so expect old PHP and Symfony constraints in composer.json rather than anything aligned with a modern Laravel runtime. Inspect the composer.json constraints and run an install attempt against your target PHP and Laravel versions on a disposable branch before committing to anything.
- How can I quickly test whether this package is compatible with my project?
- Create a throwaway branch, add the package with Composer and run composer update against your exact PHP and Laravel versions. A dependency conflict is a useful result because it ends the evaluation cheaply instead of after a sprint of work. Also read the composer.json requirements directly so you know whether the blockers are PHP, Symfony or PSR constraints.
- Is it safe to use this bundle in production for order or payment workflows?
- The risk is high and concentrated in ownership rather than code quality. The package is a read-only subtree split with no dependents, no release cadence, no documented security advisory process and support routed to Gitter and Twitter, all of which is a poor bet in an order- or payment-adjacent code path. If it already reaches you transitively through elcodi/elcodi, pin it and treat it as frozen vendor code you never patch locally.
- What are good alternatives to this bundle for state machines in Laravel?
- You have two honest paths. One is a spike that extracts the transition logic from the underlying Elcodi component and re-wraps it behind a Laravel-native contract, which is only worth it if the core turns out to be a few hundred lines. The other is to skip Elcodi entirely and use the Symfony Workflow component standalone or a small in-house transition table over Eloquent, and consider community packages such as spatie/laravel-model-states. Score each option against your real requirement surface: guards, pre and post events, persisted state history, transaction boundaries, queue interaction and audit trail.
- How do I migrate an existing Elcodi state machine workflow to Laravel?
- Sequence the work by domain rules first and framework second. Document every state, transition, guard and side effect the current machine encodes, then reimplement those rules behind a Laravel interface on the new side. Do not carry the bundle wiring across the migration boundary, because it has no meaning outside Symfony.
- Where do I report bugs or get support for this package, and what license is it under?
- This repository is read-only and pull requests are explicitly not attended, so issues, questions and pull requests must go to the main elcodi/elcodi repository. Community support is routed to the Elcodi Gitter room, Stack Overflow and a Twitter account, with no formal security process. The license is MIT, which is permissive but does not offset the maintenance risk of an unmaintained dependency.