PHPackages                             kornheiser/events - 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. kornheiser/events

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

kornheiser/events
=================

Eventing, Handling

v1.1.0(4y ago)03MITPHPPHP ^8.0

Since Jan 24Pushed 4y agoCompare

[ Source](https://github.com/Kornheiser/Events)[ Packagist](https://packagist.org/packages/kornheiser/events)[ RSS](/packages/kornheiser-events/feed)WikiDiscussions main Synced today

READMEChangelog (1)DependenciesVersions (2)Used By (0)

[![Events](./logotype.jpg?raw=true)](./logotype.jpg?raw=true)

[![Version](https://camo.githubusercontent.com/6cd7cf47e613829670532c2cb17f853e3346dd118e660fc0cded0dde465bbef9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6b6f726e6865697365722f6576656e74733f7374796c653d706c6173746963)](https://packagist.org/packages/kornheiser/events)[![Downloads](https://camo.githubusercontent.com/a15a88cae2a42c9f3b2af15eb48be728d682e6d56568deeb428066db458310fc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6b6f726e6865697365722f6576656e74733f7374796c653d706c6173746963)](https://packagist.org/packages/kornheiser/events)[![License](https://camo.githubusercontent.com/c9b5a4bbac6a9a443b7cd2756a741894136c4153b93fab827dcdd9569687b97d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6b6f726e6865697365722f6576656e74733f7374796c653d706c6173746963)](https://en.wikipedia.org/wiki/MIT_License)[![PHPVersion](https://camo.githubusercontent.com/cabdf84268ed602fe68f9d19169a73adc3bcb96985cd2b13a11f4bd6db54896d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6b6f726e6865697365722f6576656e74733f7374796c653d706c6173746963)](https://packagist.org/packages/kornheiser/events)

Installation
------------

[](#installation)

```
composer require kornheiser/events
```

Example
-------

[](#example)

### Make ur own Event

[](#make-ur-own-event)

```
use Kornheiser\Event\Event;

class NewMessageEvent implements Event {

    public function __construct(
        public string $text,
        public int $time,
        public string $senderMail
    ): void {}
}
```

### Handling

[](#handling)

#### Simple handler

[](#simple-handler)

```
use Kornheiser\Event\Handler;

class NewMessageHandler implements Handler {

    public function onHandle(Event $ev): void {
        var_dump($ev->text, $ev->time, $ev->senderMail);
    }
}
```

#### Callable handler

[](#callable-handler)

```
use Kornheiser\Event\CallableHandler;

$callableHandler = new CallableHandler(function(Event $ev) {
    echo $ev->senderMail . ": " . $ev->text;
});
```

#### Targeted handler

[](#targeted-handler)

A targeted handler, unlike a regular handler, only targets a once specific event, see:

```
use Kornheiser\Event\TargetedHandler;

$handler1 = new TargetedHandler(NewMessageEvent::class, new NewMessageHandler());
$handler2 = new TargetedHandler(NewMessageEvent::class, $callableHandler);
```

### Conclusion

[](#conclusion)

```
use Kornheiser\Event\EventManager;

$invoker = new EventManager();

$invoker->addHandler($handler1);
$invoker->addHandler($handler2);

$invoker->call(new NewMessageEvent(text: "hello world", time: time(), senderMail: "some programmer"));
```

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity54

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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1619d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6dc8a4f5a648b18f5a9a761c2b1057d679e72b51ded0eb5ded45b094773ed416?d=identicon)[Rollylni](/maintainers/Rollylni)

---

Top Contributors

[![Rollylni](https://avatars.githubusercontent.com/u/62455812?v=4)](https://github.com/Rollylni "Rollylni (13 commits)")

### Embed Badge

![Health badge](/badges/kornheiser-events/health.svg)

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

###  Alternatives

[yii2mod/yii2-comments

Comments module for Yii2

15984.1k1](/packages/yii2mod-yii2-comments)[panique/laravel-sass

Compiles your Sass .scss files to .css every time you run your app (in development)

71173.1k1](/packages/panique-laravel-sass)[christianbarkowsky/tabcontrol

Create tabs as content element. Extension for Contao Open Source CMS

1010.0k](/packages/christianbarkowsky-tabcontrol)

PHPackages © 2026

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