Skip to content

Build sophisticated workflow and state machine systems with database-driven configurations, role-based permissions, and seamless Laravel integration.

License

Notifications You must be signed in to change notification settings

cleaniquecoders/flowstone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flowstone

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Flowstone is a powerful Laravel package that integrates the robust Symfony Workflow engine into your Laravel applications. Build sophisticated workflow and state machine systems with database-driven configurations, role-based permissions, and seamless Laravel integration.

Workflow Designer — Document Approval

🚀 Key Features

  • 🔄 Database-Driven Workflows - Configure workflows through the database for runtime flexibility
  • 🏛️ Symfony Workflow Integration - Built on the proven Symfony Workflow component
  • 👥 Role-Based Permissions - Control who can perform transitions with metadata-driven roles
  • 📊 Predefined Status Enum - Ready-to-use workflow states (Draft, Pending, Approved, etc.)
  • ⚡ Performance Optimized - Workflow configuration caching and efficient queries
  • 🎯 Multiple Workflow Types - Support for both State Machines and Workflows

💡 Why Flowstone?

Laravel-Native Workflow Integration

Unlike Symfony's configuration-based approach, Flowstone uses Laravel traits for better developer experience:

// ✅ Flowstone way - Full IDE support!
class Document extends Model implements WorkflowContract
{
    use InteractsWithWorkflow;  // Get 50+ workflow methods instantly

    // IDE autocomplete ✅ | Type hints ✅ | Dynamic workflows ✅
}

// ❌ Symfony way - Config-based, no IDE support
'supports' => [App\Models\Document::class],  // Hard-coded in config

Benefits:

  • Full IDE Autocomplete - IntelliSense for all workflow methods
  • Type Safety - Compile-time type checking
  • Dynamic Workflows - Choose workflows at runtime
  • Self-Documenting - Just look at the model to see workflow support
  • Better Testing - Mock workflow behavior directly

See detailed comparison in docs.

Table of Contents

Requirements

  • PHP: 8.2, 8.3, or 8.4
  • Laravel: 10.x, 11.x, or 12.x
  • Database: MySQL, PostgreSQL, SQLite, or SQL Server

Version Compatibility

Flowstone PHP Laravel Symfony Workflow Livewire
1.3.1+ 8.2-8.4 10.x-12.x 6.4-7.x 3.0+
1.3.0 8.4 11.x-12.x 7.3+ 3.6+

Note: Laravel 9 is not supported due to dependency requirements. Laravel 9 reached end-of-life in February 2024.

Installation

Install Flowstone via Composer:

composer require cleaniquecoders/flowstone

Publish and run the migrations:

php artisan vendor:publish --tag="flowstone-migrations"
php artisan migrate

Optionally, publish the configuration file:

php artisan vendor:publish --tag="flowstone-config"

Documentation

Comprehensive documentation is available in the docs/ directory:

Examples

Real-world examples are available in the examples/ directory:

Testing

composer test

Contributing

Please see CONTRIBUTING for details.

License

The MIT License (MIT). Please see License File for more information.

About

Build sophisticated workflow and state machine systems with database-driven configurations, role-based permissions, and seamless Laravel integration.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 2

  •  
  •