polysource / workflow-bridge
Polysource — Symfony Workflow bridge: auto-generates inline transition actions + state chips for resources with a Workflow attached.
Package info
github.com/polysource/workflow-bridge
Type:symfony-bundle
pkg:composer/polysource/workflow-bridge
Requires
- php: >=8.1
- polysource/core: ^0.1
- symfony/config: ^5.4 || ^6.0 || ^7.0 || ^8.0
- symfony/dependency-injection: ^5.4 || ^6.0 || ^7.0 || ^8.0
- symfony/http-kernel: ^5.4 || ^6.0 || ^7.0 || ^8.0
- symfony/translation: ^5.4 || ^6.0 || ^7.0 || ^8.0
- symfony/workflow: ^5.4 || ^6.0 || ^7.0 || ^8.0
- symfony/yaml: ^5.4 || ^6.0 || ^7.0 || ^8.0
- twig/twig: ^3.0
Requires (Dev)
- phpunit/phpunit: ^10.5 || ^11.5
- polysource/symfony-bundle: 0.1.x-dev
This package is auto-updated.
Last update: 2026-05-10 21:01:15 UTC
README
Symfony Workflow integration for Polysource — auto-generated transition buttons + state chip per resource.
Part of the Polysource monorepo. MIT-licensed.
When to use
You're modelling an ecommerce / CRM / claims / HR / regulated workflow with symfony/workflow and want the admin UI to expose only the transitions actually enabled by the workflow guards. This package wraps Symfony's Workflow\Registry into auto-generated Polysource actions and a state chip Twig helper.
See ADR-021. Separate package so polysource/symfony-bundle doesn't pull symfony/workflow for hosts that don't use it.
What it ships
WorkflowAwareInterface+WorkflowAwareTrait— opt-in marker for resources.WorkflowResolver— wraps Symfony WorkflowRegistrywith graceful null-on-failure.TransitionDiscovery— delegates toWorkflow::getEnabledTransitions()(guards natifs Symfony intacts).ApplyTransitionAction— auto-generated per transition, granular permissionPOLYSOURCE_WORKFLOW_TRANSITION_<UPPER>,TransitionException→ActionResult::failure.WorkflowChipPalette+WorkflowChipExtensionTwig (polysource_workflow_chip_palette()+polysource_workflow_state_label())._state_chip.html.twigpartial Bootstrap.- Config
polysource_workflow_bridge.palettes.<workflow>.<state>with wildcard fallback.
Audit log (ADR-020) traces every transition for free (actionName=transition-<name>).
Install
composer require polysource/workflow-bridge symfony/workflow
Register the bundle:
return [ Polysource\WorkflowBridge\PolysourceWorkflowBridgeBundle::class => ['all' => true], ];