PHPackages                             ag/event - 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. [Framework](/categories/framework)
4. /
5. ag/event

ActiveTypo3-flow-package[Framework](/categories/framework)

ag/event
========

A package that strives to best possible support the TYPO3 Flow PHP Framework with Domain Events as described in »Implementing Domain-Driven Design« by Vaughn Vernon.

1.0.0(11y ago)111.1k5[5 issues](https://github.com/agitso/event/issues)MITPHP

Since Feb 3Pushed 10y ago6 watchersCompare

[ Source](https://github.com/agitso/event)[ Packagist](https://packagist.org/packages/ag/event)[ RSS](/packages/ag-event/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (3)Used By (0)

Ag.Event
========

[](#agevent)

TYPO3 Flow package to support domain events as described in the Domain Events chapter from: [https://vaughnvernon.co/?page\_id=168](https://vaughnvernon.co/?page_id=168)

Why?
----

[](#why)

Because using domain events to communicate information between aggregates, modules and bounded contexts decreases coupling and helps avoiding anemic domain models.

How?
----

[](#how)

See [Ag.Shop](https://github.com/agitso/shop) for an example on how to integrate.

### Event processing

[](#event-processing)

There is a CLI command which can be run via `./flow event:process {eventHandlerName}`, where the `{eventHandlerName}` is defined in `Settings.yaml` for example that way:

```
Ag:
  Event:
    eventHandlers:
      async:
        'Acme\Foo\EventHandler\SomeThingTriggeredEventHandler': TRUE
```

Per convention, the class name's namespace separators are substituted by an undersocre, so the key name in this case would be `Acme_Foo_EventHandler_SomeThingTriggeredEventHandler`.

#### Deamonizing configuration

[](#deamonizing-configuration)

The mentioned CLI command must be kept alive manually because it intrinsically will time out after a specified time range in order to avoid for example the MySQL connection timing out.

In order to achieve that, we have three recommendations here.

##### Using *supervisord*

[](#using-supervisord)

Have a pool with the following configuration:

```
[program:some_thing]
command=/var/www/production/flow event:process Acme_Foo_EventHandler_SomeThingTriggeredEventHandler
environment=FLOW_CONTEXT="Production"
redirect_stderr=true
stdout_logfile=/var/www/production/Data/Logs/Supervisord.log
stderr_logfile=/var/www/production/Data/Logs/Supervisord_error.log
user=theuser
autostart=true
autorestart=true
stopsignal=QUIT
```

##### Using *daemon*

[](#using-daemon)

Start the process with a command similar to this:

```
daemon --name="some_thing" --env="FLOW_CONTEXT=Production" --respawn --stdout="/var/www/production/Data/Logs/DaemonStdOut.log" --stderr="/var/www/production/Data/Logs/DaemonStdErr.log" /var/www/production/flow event:process Acme_Foo_EventHandler_SomeThingTriggeredEventHandler
```

Once started, you can stop this deamon with `daemon --stop --name="some_thing"`.

##### Using *upstart*

[](#using-upstart)

Have an upstart config with especially `respawn` active.

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance11

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 55.2% 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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

4168d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/675a0d5c6c6488a9f2b524959e084b0ebb9f488e0d14a58bbfde9ddfb528e78a?d=identicon)[agitso](/maintainers/agitso)

---

Top Contributors

[![agitso](https://avatars.githubusercontent.com/u/3692447?v=4)](https://github.com/agitso "agitso (16 commits)")[![afoeder](https://avatars.githubusercontent.com/u/1125168?v=4)](https://github.com/afoeder "afoeder (10 commits)")[![malteriechmann](https://avatars.githubusercontent.com/u/656568?v=4)](https://github.com/malteriechmann "malteriechmann (2 commits)")[![Akii](https://avatars.githubusercontent.com/u/1204017?v=4)](https://github.com/Akii "Akii (1 commits)")

### Embed Badge

![Health badge](/badges/ag-event/health.svg)

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

###  Alternatives

[mikopbx/core

Free PBX system for SMB based on Asterisk

5581.4k](/packages/mikopbx-core)[phwoolcon/phwoolcon

Phalcon + Swoole

1701.2k2](/packages/phwoolcon-phwoolcon)[symfony/beanstalkd-messenger

Symfony Beanstalkd Messenger Bridge

19398.9k3](/packages/symfony-beanstalkd-messenger)

PHPackages © 2026

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