PHPackages                             symbiotic/event-dispatcher-composite - 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. symbiotic/event-dispatcher-composite

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

symbiotic/event-dispatcher-composite
====================================

Composite dispatcher and Listener Provider makes it possible to process events by several Dispatchers at once.

1.0.0(4y ago)04BSD-3-ClausePHPPHP &gt;=7.2.0

Since Oct 20Pushed 4y agoCompare

[ Source](https://github.com/symbiotic-php/event-dispatcher-composite)[ Packagist](https://packagist.org/packages/symbiotic/event-dispatcher-composite)[ RSS](/packages/symbiotic-event-dispatcher-composite/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Composite Event Dispatcher-14
-----------------------------

[](#composite-event-dispatcher-14)

Install
-------

[](#install)

```
composer require symbiotic/event-dispatcher-composite

You can also put an implementation "symbiotic/event-dispatcher"
Decorator for cached events "symbiotic/event-dispatcher-cached"

```

Using the Composite Dispatcher
------------------------------

[](#using-the-composite-dispatcher)

Composite dispatcher makes it possible to process events by several Dispatchers at once.

```
/**
 * @var Psr\EventDispatcher\ListenerProviderInterface $coreProvider
 * @var Psr\EventDispatcher\ListenerProviderInterface $appProvider
 **/
$core_dispatcher = new MyEventDispatcher($coreProvider);
$app_dispatcher = new MyEventDispatcher($appProvider);

$dispatcher = new  \Symbiotic\Event\CompositeEventDispatcher();
// we add several dispatchers for processing at once
$dispatcher->attach($core_dispatcher);
$dispatcher->attach($app_dispatcher);

// Now the event will be processed by several dispatchers at once

$event = $dispatcher->dispatch(new MyEvent());
```

Composite Listener Provider
---------------------------

[](#composite-listener-provider)

It is also possible to implement event handling from multiple sources using a composition of providers. This approach is used in the framework to sequentially collect listeners in order of priority (core-&gt;application-&gt;plugin).

```
/**
 * @var Psr\EventDispatcher\ListenerProviderInterface $core_provider
 * @var Psr\EventDispatcher\ListenerProviderInterface $app_provider
 * @var Psr\EventDispatcher\ListenerProviderInterface $compositeProvider
 **/
$core_provider = new ListenerProvider();
$app_provider = new ListenerProvider();
// adding listeners to providers...

/**
 * @var Psr\EventDispatcher\ListenerProviderInterface|\Symbiotic\Event\CompositeListenersProvider $compositeProvider
 **/
$compositeProvider = new \Symbiotic\Event\CompositeListenersProvider();
$compositeProvider->attach($core_provider);
$compositeProvider->attach($app_provider);

/**
 * @var Psr\EventDispatcher\EventDispatcherInterface $dispatcher
 **/
$dispatcher = new MyEventDispatcher($compositeProvider);

$event = $dispatcher->dispatch(new MyEvent());
```

###  Health Score

20

—

LowBetter than 12% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

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

1764d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5098237?v=4)[symbiotic](/maintainers/symbiotic)[@symbiotic](https://github.com/symbiotic)

---

Tags

psr-14SymbioticPHPComposite Event DispatcherComposite Event Listener provider

### Embed Badge

![Health badge](/badges/symbiotic-event-dispatcher-composite/health.svg)

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

###  Alternatives

[symfony/symfony

The Symfony PHP framework

31.4k87.4M2.2k](/packages/symfony-symfony)[deptrac/deptrac

Deptrac is a static code analysis tool that helps to enforce rules for dependencies between software layers.

3.0k9.8M298](/packages/deptrac-deptrac)[mcp/sdk

Model Context Protocol SDK for Client and Server applications in PHP

1.6k2.2M145](/packages/mcp-sdk)[phpro/soap-client

A general purpose SoapClient library

8896.3M56](/packages/phpro-soap-client)[cognesy/instructor-php

The complete AI toolkit for PHP: unified LLM API, structured outputs, agents, and coding agent control

326127.9k1](/packages/cognesy-instructor-php)[testo/testo

A lightweight PHP testing framework.

20319.6k183](/packages/testo-testo)

PHPackages © 2026

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