PHPackages                             iammerus/flowy - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. iammerus/flowy

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

iammerus/flowy
==============

Flowy - A PHP Workflow Engine

00PHPCI failing

Since May 16Pushed 1y ago1 watchersCompare

[ Source](https://github.com/iammerus/flowy)[ Packagist](https://packagist.org/packages/iammerus/flowy)[ RSS](/packages/iammerus-flowy/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Flowy - PHP Workflow Engine
===========================

[](#flowy---php-workflow-engine)

Flowy is a modern, extensible PHP workflow engine designed for robust, maintainable, and scalable workflow automation. Built with PHP 8.1+, it leverages modern language features, strict typing, and a modular architecture for maximum flexibility and developer experience.

🚀 Getting Started
-----------------

[](#-getting-started)

### Installation

[](#installation)

Install Flowy via Composer:

```
composer require iammerus/flowy
```

### Minimal Example: Define and Run a Workflow

[](#minimal-example-define-and-run-a-workflow)

```
use Flowy\Model\Data\WorkflowDefinition;
use Flowy\Model\Data\StepDefinition;
use Flowy\Registry\InMemoryDefinitionRegistry;
use Flowy\Engine\WorkflowEngineService;
use Flowy\Context\WorkflowContext;

// 1. Define a workflow and its steps
$step = new StepDefinition(
    'start',
    [],
    [],
    'Start',
    'The initial step.',
    true,
    'action',
    null,
    null
);
$workflow = new WorkflowDefinition(
    'demo_workflow',
    '1.0.0',
    'start',
    [$step],
    'Demo Workflow',
    'A simple demo workflow.'
);

// 2. Register the workflow definition
$registry = new InMemoryDefinitionRegistry();
$registry->addDefinition($workflow);

// 3. Create the engine (using in-memory persistence for demo)
$engine = new WorkflowEngineService(
    $registry,
    /* PersistenceInterface */ new class implements \Flowy\Persistence\PersistenceInterface {
        public function save($instance) { /* ... */ }
        public function find($id) { /* ... */ }
        public function findByBusinessKey($defId, $key) { /* ... */ }
        public function findInstancesByStatus($status) { /* ... */ }
    },
    /* EventDispatcherInterface */ new \Flowy\Event\NullEventDispatcher()
);

// 4. Start a workflow instance
$context = new WorkflowContext(['foo' => 'bar']);
$instance = $engine->start('demo_workflow', '1.0.0', $context);
echo "Started instance: " . $instance->id->toString() . PHP_EOL;
```

### Running Tests, Static Analysis, and Code Style Checks

[](#running-tests-static-analysis-and-code-style-checks)

- **Run tests:**```
    composer test
    ```
- **Run static analysis (PHPStan):**```
    composer stan
    ```
- **Check code style (PSR-12):**```
    composer cs
    ```

📚 Further Documentation
-----------------------

[](#-further-documentation)

- See [docs/CoreConcepts.md](./docs/CoreConcepts.md) for an overview of Flowy's core concepts.

---

Flowy is open-source and welcomes contributions! Please see the roadmap and specification before submitting PRs.

###  Health Score

14

—

LowBetter than 1% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/22162227?v=4)[Meru-kun](/maintainers/iammerus)[@iammerus](https://github.com/iammerus)

---

Top Contributors

[![iammerus](https://avatars.githubusercontent.com/u/22162227?v=4)](https://github.com/iammerus "iammerus (28 commits)")

### Embed Badge

![Health badge](/badges/iammerus-flowy/health.svg)

```
[![Health](https://phpackages.com/badges/iammerus-flowy/health.svg)](https://phpackages.com/packages/iammerus-flowy)
```

###  Alternatives

[cleaniquecoders/blueprint-macro

Laravel Blueprint Macro

164.6k7](/packages/cleaniquecoders-blueprint-macro)[limingxinleo/x-phalcon-enum

a phalcon enum component

104.4k1](/packages/limingxinleo-x-phalcon-enum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
