PHPackages                             surikman/process-manager-bundle - 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. surikman/process-manager-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

surikman/process-manager-bundle
===============================

Symfony Bundle - Process Manager

07[3 issues](https://github.com/surikman/process-manager-bundle/issues)PHP

Since Apr 20Pushed 8y agoCompare

[ Source](https://github.com/surikman/process-manager-bundle)[ Packagist](https://packagist.org/packages/surikman/process-manager-bundle)[ RSS](/packages/surikman-process-manager-bundle/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (1)Used By (0)

ProcessManager Symfony Bundle
=============================

[](#processmanager-symfony-bundle)

```
$ composer require surikman/process-manager-bundle
```

Bundle
------

[](#bundle)

```
// config/bundles.php add
SuRiKmAn\ProcessManagerBundle\SuRiKmAnProcessManagerBundle::class => ['all' => true],

// and this as first bundle !!!
Go\Symfony\GoAopBundle\GoAopBundle::class => ['all' => true],
```

Configuration
=============

[](#configuration)

```
# config/packages/surikman_process_manager.yaml
surikman_process_manager:
    services:
        logger_service: ~ # if you have own logger service (based on Psr/LoggerInterface)
        command_bus_service: ~ # if you can change the command bus
        router_service: ~ # do you have own router? implement SuRiKmAn\ProcessManagerBundle\CommandBus\Router\RouterInterface

    process_manager:
        processes:
            UniqueName:
                Event: CommandTransformer1
                Event1: CommandTransformer2
                Event2: CommandTransofmer3
                .
                .
                .
        extended_processes: # if you have a parallel processes or process may trigger two different events
            UniqueName2:
                main:
                    Event: CommandTransformer1
                    Event1: CommandTransformer2
                sub:
                    -
                        main:
                            Event2a: CommandTransformer3
                        sub:
                            -
                                main:
                                    Event3: CommandTransformer5
                                    Event4: CommandTransformer5
                            -
                                main:
                                    Event5: CommandTransformer6
                    -
                        main:
                            Event2b: CommandTransformer4
```

```
# Register your own EventHandler

 #e.q.:
    SuRiKmAn\ProcessManagerBundle\Example\FakeEventHandler1:
        tags:
            - {name: 'surikman_process_manager.event_bus.event_handler'}

    # Or if you support autoconfiguration just
    _instanceof:
        SuRiKmAn\ProcessManagerBundle\EventBus\Handler\EventHandlerInterface:
            tags: ['surikman_process_manager.event_bus.event_handler']
        SuRiKmAn\ProcessManagerBundle\EventBus\Handler\SubscribedEventHandlerInterface:
            tags: ['surikman_process_manager.event_bus.event_handler']
```

### Create own Handler

[](#create-own-handler)

#### As Subscriber

[](#as-subscriber)

```
// if you can create lazy loaded eventHandler do not use "final" keyword

class MyEventHandler implements SubscribedEventHandlerInterface
{
    public function doSomethingMagic(MyEvent $event): void
    {
        // do something magic...
    }

    public function handleAll(EventInterface $event): void
    {
        // do something else...
    }

    public function handleWithEventBus(EventInterface $event, EventBusInterface $eventBus): void
    {
        // do something else with EventBus...
        $eventBus->dispatch(new AnotherEvent());
    }

    /**
    * ['eventName' => 'methodName'] // priority will be 0
    * ['eventName' => ['methodName', (int)$priority]]
    * ['eventName' => [['methodName1', (int)$priority], ['methodName2']]
    */
    public static function getSubscribedEvents(): array
    {
        return [
            MyEvent::class  => 'doSomethingMagic',
            '*'             => [
                                    ['handleAll', 100],
                                    ['handleWithEventBus']
                               ]
        ];
    }
}
```

#### As Listener

[](#as-listener)

```
// if you can create lazy loaded eventHandler do not use "final" keyword
class MyEventHandler implements EventHandlerInterface
{
    public function doSomethingMagic(MyEvent $event): void
    {
        // do something magic...
    }

    public function handleAll(EventInterface $event): void
    {
        // do something else...
    }
}
```

and then

```
MyEventHandler:
    tags:
        - {name: 'surikman_process_manager.event_bus.event_handler',  event: MyEvent, method: doSomethingMagic, priority: 1}
```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 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://www.gravatar.com/avatar/e7453ef9d626c08b2134fd9ce9a17f0a992dc7e7b9fabb046a0fdad3a451f633?d=identicon)[surikman](/maintainers/surikman)

---

Top Contributors

[![surikman](https://avatars.githubusercontent.com/u/7412310?v=4)](https://github.com/surikman "surikman (1 commits)")

### Embed Badge

![Health badge](/badges/surikman-process-manager-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/surikman-process-manager-bundle/health.svg)](https://phpackages.com/packages/surikman-process-manager-bundle)
```

###  Alternatives

[bertptrs/phpstreams

A streams library for PHP based on the Java 8 Streams API.

883.2k](/packages/bertptrs-phpstreams)

PHPackages © 2026

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