PHPackages                             orbiter/satellite - 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. orbiter/satellite

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

orbiter/satellite
=================

PHP Event Dispatcher with listener and PSR-14 dispatcher, compatible with PSR-11 container and custom invokers.

0.4.0(3y ago)01.2k2MITPHPPHP &gt;=8.1CI failing

Since Nov 21Pushed 3y ago1 watchersCompare

[ Source](https://github.com/bemit/satellite)[ Packagist](https://packagist.org/packages/orbiter/satellite)[ Docs](https://bemit.codes)[ RSS](/packages/orbiter-satellite/feed)WikiDiscussions master Synced 6d ago

READMEChangelogDependencies (4)Versions (9)Used By (2)

Orbiter\\Satellite
==================

[](#orbitersatellite)

[![Latest Stable Version](https://camo.githubusercontent.com/f0b3ea8183c878852d9562d909c27ae9a9589a1f5fc4ef5f281780c3cc32bf7d/68747470733a2f2f706f7365722e707567782e6f72672f6f7262697465722f736174656c6c6974652f76657273696f6e2e737667)](https://packagist.org/packages/orbiter/satellite)[![Latest Unstable Version](https://camo.githubusercontent.com/19a5238d617f76a1c2ace65957ae4b2051ccc31cb9fb47e843ba181236348efa/68747470733a2f2f706f7365722e707567782e6f72672f6f7262697465722f736174656c6c6974652f762f756e737461626c652e737667)](https://packagist.org/packages/orbiter/satellite)[![codecov](https://camo.githubusercontent.com/af7492b6b52a3b8b64fb3e55ef915e865d03c421b9c37b75a4ecffca7e23c97a/68747470733a2f2f636f6465636f762e696f2f67682f62656d69742f736174656c6c6974652f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d4e33373645513254354f)](https://codecov.io/gh/bemit/satellite)[![Total Downloads](https://camo.githubusercontent.com/80e0569f996360951e132508f3c88a91cc9a322027443f14ad4e7ce03bdc9ebe/68747470733a2f2f706f7365722e707567782e6f72672f6f7262697465722f736174656c6c6974652f646f776e6c6f6164732e737667)](https://packagist.org/packages/orbiter/satellite)[![Github actions Build](https://github.com/bemit/satellite/actions/workflows/blank.yml/badge.svg)](https://github.com/bemit/satellite/actions)[![PHP Version Require](https://camo.githubusercontent.com/e82b397cace46494ab9f850c4c0122379294c20c17f98ceb5b6c3dc897fd6072/687474703a2f2f706f7365722e707567782e6f72672f6f7262697465722f736174656c6c6974652f726571756972652f706870)](https://packagist.org/packages/orbiter/satellite)

- **PSR-14** Event Dispatcher and Listener
- using [`InvokerInterface`](https://github.com/PHP-DI/Invoker/blob/2.0.0/src/InvokerInterface.php) to execute anything, **PSR-11** compatible

Check [satellite-app](https://github.com/bemit/satellite-app) for a ready to use template, or install just this event library:

```
composer require orbiter/satellite
```

Dependencies, using [`PHP-DI`](https://php-di.org/) here, but possible with any PSR-11 container and any implementation of [`InvokerInterface`](https://github.com/PHP-DI/Invoker):

```
use function DI\autowire;
use function DI\get;

$dependencies = [
    Satellite\Event\EventListenerInterface::class => autowire(Satellite\Event\EventListener::class),
    Psr\EventDispatcher\ListenerProviderInterface::class => get(Satellite\Event\EventListenerInterface::class),
    Satellite\Event\EventDispatcher::class => autowire()
        ->constructorParameter('listener', get(Psr\EventDispatcher\ListenerProviderInterface::class))
        ->constructorParameter('invoker', get(Invoker\InvokerInterface::class)),
    Psr\EventDispatcher\EventDispatcherInterface::class => get(Satellite\Event\EventDispatcher::class),
];

```

For full invocation PSR-11 injection based on `Reflection`, set up the `Invoker` with the included `InvokerTypeHintContainerResolver`:

```
/**
 * @var $invoker \Invoker\Invoker
 */
$invoker = $container->get(\Invoker\Invoker::class);
$invoker->getParameterResolver()->prependResolver(
    new Satellite\InvokerTypeHintContainerResolver($container)
);

```

Dev Notices
-----------

[](#dev-notices)

Commands to set up and run e.g. tests:

```
# on windows:
docker run -it --rm -v %cd%:/app composer install

docker run -it --rm -v %cd%:/var/www/html php:8.1-cli-alpine sh

docker run --rm -v %cd%:/var/www/html php:8.1-cli-alpine sh -c "cd /var/www/html && ./vendor/bin/phpunit --testdox -c phpunit-ci.xml --bootstrap vendor/autoload.php"

# on unix:
docker run -it --rm -v `pwd`:/app composer install

docker run -it --rm -v `pwd`:/var/www/html php:8.1-cli-alpine sh

docker run --rm -v `pwd`:/var/www/html php:8.1-cli-alpine sh -c "cd /var/www/html && ./vendor/bin/phpunit --testdox -c phpunit-ci.xml --bootstrap vendor/autoload.php"
```

Versions
--------

[](#versions)

This project adheres to [semver](https://semver.org/), **until `1.0.0`** and beginning with `0.1.0`: all `0.x.0` releases are like MAJOR releases and all `0.0.x` like MINOR or PATCH, modules below `0.1.0` should be considered experimental.

License
-------

[](#license)

This project is free software distributed under the [**MIT LICENSE**](LICENSE).

### Contributors

[](#contributors)

By committing your code to the code repository you agree to release the code under the MIT License attached to the repository.

---

Maintained by [Michael Becker](https://i-am-digital.eu)

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity61

Established project with proven stability

 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.

###  Release Activity

Cadence

Every ~177 days

Recently: every ~156 days

Total

7

Last Release

1306d ago

PHP version history (4 changes)0.0.1PHP &gt;=7.0

0.1.0PHP &gt;=7.4

0.2.1PHP &gt;=7.4||&gt;=8.0

0.4.0PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/946489901a36f4507ead2ce24d3e9c6570ae4e16ab1aed0ef6314237302ecb37?d=identicon)[bemit](/maintainers/bemit)

---

Top Contributors

[![elbakerino](https://avatars.githubusercontent.com/u/7737034?v=4)](https://github.com/elbakerino "elbakerino (31 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/orbiter-satellite/health.svg)

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

###  Alternatives

[symfony/object-mapper

Provides a way to map an object to another object

34885.7k18](/packages/symfony-object-mapper)[evoweb/extender

Extending extbase domain models like a pro with extender

11260.3k6](/packages/evoweb-extender)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1481.0k](/packages/eliashaeussler-typo3-form-consent)[xefi/faker-php-laravel

Faker php integration with laravel

1915.1k](/packages/xefi-faker-php-laravel)

PHPackages © 2026

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