⭐ Found this useful? Give it a star on GitHub! It helps us maintain and improve the project.
Define Symfony Workflow state machines and workflows in the database, manage them with a built-in CRUD UI, and execute transitions at runtime through DatabaseWorkflowRegistry and WorkflowApplicator.
📋 Compatible with Symfony 7.x (PHP 8.2+) and 8.x (PHP 8.4+) — tested on Symfony 7.4, 8.0, and 8.1+.
This bundle is FrankenPHP worker mode friendly.
- Persist workflow definitions (places, transitions, subject class, marking property) in Doctrine
- Configurable Doctrine
table_prefixfor table and constraint names - Built-in admin UI at
/workflow(configurable path), protected by default viasecurity.access_roles/WorkflowUiAccessCheckerInterface - Configurable
ui.layout_template,ui.css_framework(bootstrap5,tailwind,foundation,custom, …),ui.icon_set, andui.list_page_size - UI translations for
en,es,fr,it,de,nl,pt(enable extra locales inui.locales) - Runtime resolution via
DatabaseWorkflowRegistry(Symfony Workflow component) WorkflowApplicatorhelper to apply transitions and flush subjects- Demo with order approval (state machine) and document review (parallel workflow)
- FrankenPHP worker mode: Supported (tested in the Symfony 8 demo; see Demo with FrankenPHP)
composer require nowo-tech/workflow-bundle# config/packages/nowo_workflow.yaml
nowo_workflow:
enabled: true
ui:
path: '/workflow'
layout_template: 'base.html.twig' # project layout
css_framework: bootstrap5
security:
access_roles: [ROLE_ADMIN]php bin/console nowo:workflow:sync-schema
php bin/console nowo:workflow:seed-demo # optional sample definitionsmake -C demo up-symfony8Open http://localhost:8022 — try the CRUD at /workflow and playgrounds for orders/documents.
Smoke check (boot + HTTP 200):
make demo-smoke- Installation
- Configuration
- PSR evaluation (REQ-CS-007)
- Usage
- Contributing
- Code of Conduct
- Changelog
- Upgrading
- Release
- Security
- Engram
- Spec-driven development
- GitHub Spec Kit
| Area | Coverage |
|---|---|
| PHP | 100% |
make test
make test-coverage