phpmentors/workflower-bundle
Symfony bundle that integrates the Workflower BPMN 2.0 workflow engine into PHP applications. Define and execute business processes, manage transitions and tokens, and wire workflow events into Symfony services, configuration, and dependency injection.
status strings happen to be written.Consider it when:
AccessDecisionManagerInterface is itself a Symfony 3.4/4.4-era API — deprecated in 5.4 and removed in 6.0 — so this release confirms rather than widens the package's legacy positioning.Look elsewhere when:
AccessDecisionManagerInterface means this bundle will not cleanly serve a modern Symfony security stack. There is no case for taking on this dependency.For executives: This is a small, permissively licensed (BSD-2) Symfony bundle that replaces scattered status columns with a formal workflow model, and its new release adds permission-checked transitions so policy like "only compliance can approve" is enforced by the engine rather than by whoever wrote the controller. The caveat is still decisive: before this release it had not shipped since September 2017, it has roughly two dozen GitHub stars and zero downstream dependents, and one maintenance commit is not a support commitment. The real ask is not "adopt a library" but "fund a small fork and own it" — and my recommendation remains to decline that for anything new. It is worth a few days of evaluation only where we already run an older Symfony version and want consistent, permission-gated state handling without a framework upgrade. This is a one-service experiment, not a platform bet, and the expected downside is bounded to that experiment.
For engineering: It is a Symfony bundle wrapping Workflower's place/transition engine and registering it with the DI container. Version 1.4.0 rebuilds the Security Participant around AccessDecisionManagerInterface instead of RoleHierarchyVoter, which means transition guards can consult the access decision manager for the current token — cleaner than voter juggling, and the right call for a 3.4/4.4-era codebase. Two things to weigh: that interface is itself deprecated in Symfony 5.4 and gone in 6.0, so this release lands the package firmly in maintenance-for-legacy territory rather than modernizing it; and one commit from a single contributor is not a sign of revived stewardship. If we do adopt, scope it to one bounded context, vendor the fork in our monorepo, pin the version, cover guards and transition side effects with tests, and write down the exit path before the first commit. Treat it as a stopgap for legacy code, not a foundation.
How can I help you explore Laravel packages today?