Skip to content

Latest commit

 

History

75 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NowoWorkflowBundle

CI Packagist Version Packagist Downloads License PHP Symfony GitHub stars Coverage

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+.

FrankenPHP Friendly Worker Mode

This bundle is FrankenPHP worker mode friendly.

Features

  • Persist workflow definitions (places, transitions, subject class, marking property) in Doctrine
  • Configurable Doctrine table_prefix for table and constraint names
  • Built-in admin UI at /workflow (configurable path), protected by default via security.access_roles / WorkflowUiAccessCheckerInterface
  • Configurable ui.layout_template, ui.css_framework (bootstrap5, tailwind, foundation, custom, …), ui.icon_set, and ui.list_page_size
  • UI translations for en, es, fr, it, de, nl, pt (enable extra locales in ui.locales)
  • Runtime resolution via DatabaseWorkflowRegistry (Symfony Workflow component)
  • WorkflowApplicator helper 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)

Quick start

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 definitions

Demo

make -C demo up-symfony8

Open http://localhost:8022 — try the CRUD at /workflow and playgrounds for orders/documents.

Smoke check (boot + HTTP 200):

make demo-smoke

Documentation

Additional documentation

Tests and coverage

Area Coverage
PHP 100%
make test
make test-coverage

About

Symfony bundle to define and run Symfony Workflow state machines from database definitions with built-in CRUD.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages