PHPackages                             blacksmith-project/event-manager - 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. blacksmith-project/event-manager

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

blacksmith-project/event-manager
================================

A PHP library providing event tools

v0.1.0(6y ago)042MITPHP

Since Sep 7Pushed 6y agoCompare

[ Source](https://github.com/BlacksmithProject/event-manager)[ Packagist](https://packagist.org/packages/blacksmith-project/event-manager)[ RSS](/packages/blacksmith-project-event-manager/feed)WikiDiscussions event\_registration Synced 2mo ago

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

BlacksmithProject's Event Manager
=================================

[](#blacksmithprojects-event-manager)

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/4d28764d19c60a7b94b7b21a34448a1d148b86f0a6ffa4772bbedc03889d6577/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f426c61636b736d69746850726f6a6563742f6576656e742d6d616e616765722f6261646765732f7175616c6974792d73636f72652e706e673f623d6576656e745f726567697374726174696f6e)](https://scrutinizer-ci.com/g/BlacksmithProject/event-manager/?branch=event_registration)[![Code Coverage](https://camo.githubusercontent.com/b60d159d2f4b144b9f78bdb5f006c842df9aa7a845526f82abb1ee8545c52a06/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f426c61636b736d69746850726f6a6563742f6576656e742d6d616e616765722f6261646765732f636f7665726167652e706e673f623d6576656e745f726567697374726174696f6e)](https://scrutinizer-ci.com/g/BlacksmithProject/event-manager/?branch=event_registration)

A PHP Library providing tools to manage Events in Domain Driven Design.

How to use it
-------------

[](#how-to-use-it)

Make your Entity implements `\BSP\EventManager\IRegisterEvent` and use `\BSP\EventManager\EventRegistration`.

Your Entity can now contain its own events.

### Example:

[](#example)

```
class Entity implements IRegisterEvent
{
	use EventRegistration;

	private $id;

	private function __construct(UuidInterface $id)
	{
		$this->id = $id;
	}

	public static method Register(UuidInterface $id): self
	{
		$entity = new self($id);

		$this->recordedEvents[] = new EntityRegistered($id);

		return $entity;
	}
}
```

You now have access to `$entity->recordedEvents()`, and can loop on those, to dispatch them for example.
Then, you can call `$entity->clearRegisteredEvents()` to clear them off.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

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

2437d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/de7b71eb47dae7485aa2ee1f9442d2a9c28f448b30cb6defe2a6835f1c651848?d=identicon)[ngdo-pro](/maintainers/ngdo-pro)

---

Top Contributors

[![ngdo-pro](https://avatars.githubusercontent.com/u/22030946?v=4)](https://github.com/ngdo-pro "ngdo-pro (3 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/blacksmith-project-event-manager/health.svg)

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

###  Alternatives

[laracademy/generators

This package will generate a Laravel Model based on your database table itself, filling in the required fields automatically.

355346.4k4](/packages/laracademy-generators)[beyondcode/laravel-vouchers

Allow users to redeem vouchers that are bound to models..

70763.4k2](/packages/beyondcode-laravel-vouchers)[firegento/magesetup2

MageSetup provides the necessary configuration (system config, tax, agreements, etc. for a national market.

123328.5k1](/packages/firegento-magesetup2)[sixlive/nova-text-copy-field

Laravel Nova text field with click to copy support

70708.2k2](/packages/sixlive-nova-text-copy-field)[happyr/message-serializer

Serialize classes the good way.

80491.3k](/packages/happyr-message-serializer)[percymamedy/laravel-dev-booter

Boost your Laravel app by registering Prod services only on Prod.

35320.7k1](/packages/percymamedy-laravel-dev-booter)

PHPackages © 2026

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