PHPackages                             wp-media/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. wp-media/event-manager

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

wp-media/event-manager
======================

Event Management System for WordPress

4.0.1(8mo ago)22.3k[1 issues](https://github.com/wp-media/module-event-manager/issues)3GPL-3.0-or-laterPHPPHP &gt;=7.4

Since Jan 25Pushed 8mo ago13 watchersCompare

[ Source](https://github.com/wp-media/module-event-manager)[ Packagist](https://packagist.org/packages/wp-media/event-manager)[ Docs](https://github.com/wp-media/event-manager)[ RSS](/packages/wp-media-event-manager/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (3)Dependencies (10)Versions (4)Used By (3)

Event Manager
=============

[](#event-manager)

Event management system for WordPress

Overview
--------

[](#overview)

This event management system provides a centralized way to handle WordPress hooks (actions and filters) through an event subscriber pattern. It allows you to organize hook callbacks into dedicated subscriber classes, making your WordPress code more maintainable and testable by decoupling hook registration from business logic.

Purpose
-------

[](#purpose)

This system provides a robust and scalable solution for managing events within WordPress, following best practices for event-driven architecture.

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

[](#installation)

Install via Composer:

```
composer require wp-media/event-manager
```

Initialization
--------------

[](#initialization)

Initialize the Event Manager in your WordPress plugin or theme:

```
use WPMedia\EventManager\EventManager;
use WPMedia\EventManager\PluginApiManager;

$event_manager = new EventManager(new PluginApiManager());
$event_manager->add_subscriber(new YourEventSubscriber());
```

Usage
-----

[](#usage)

### Creating an Event Subscriber

[](#creating-an-event-subscriber)

Implement the `SubscriberInterface` to listen to WordPress hooks:

```
use WPMedia\EventManager\SubscriberInterface;

class YourEventSubscriber implements SubscriberInterface
{
    public static function get_subscribed_events(): array
    {
        return [
            'init' => 'on_init',
            'wp_enqueue_scripts' => ['on_enqueue_scripts', 10],
        ];
    }

    public function on_init()
    {
        // Handle init hook
    }

    public function on_enqueue_scripts()
    {
        // Handle script enqueuing
    }
}
```

Reference
---------

[](#reference)

- **Original Design Article**: [Designing a System for WordPress Event Management](https://carlalexander.ca/designing-system-wordpress-event-management/)
- **Author**: Carl Alexander

Implementation Notes
--------------------

[](#implementation-notes)

This implementation adapts the concepts from the referenced article to create a practical event management solution for WordPress applications.

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance49

Moderate activity, may be stable

Popularity21

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 83.3% 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 ~2133 days

Total

2

Last Release

263d ago

Major Versions

3.1 → 4.0.12025-11-28

PHP version history (2 changes)3.1PHP &gt;=5.6.0

4.0.1PHP &gt;=7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/5564218f7cd2ccf4542a09b7c5436e61e6b370c97fb3b04db1c5bbc0cc67e3c1?d=identicon)[wpmedia](/maintainers/wpmedia)

---

Top Contributors

[![remyperona](https://avatars.githubusercontent.com/u/3465180?v=4)](https://github.com/remyperona "remyperona (10 commits)")[![hellofromtonya](https://avatars.githubusercontent.com/u/7284611?v=4)](https://github.com/hellofromtonya "hellofromtonya (2 commits)")

---

Tags

wordpresswordpress-plugin-apiwordpresspluginsAPI

### Embed Badge

![Health badge](/badges/wp-media-event-manager/health.svg)

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

###  Alternatives

[tgmpa/tgm-plugin-activation

TGM Plugin Activation is a PHP library that allows you to easily require or recommend plugins for your WordPress themes (and plugins).

1.8k232.9k13](/packages/tgmpa-tgm-plugin-activation)[aristath/kirki

Extending the WordPress customizer

1.3k73.1k4](/packages/aristath-kirki)[afragen/git-updater

A plugin to automatically update GitHub, Bitbucket, GitLab, or Gitea hosted plugins, themes, and language packs.

3.3k1.8k](/packages/afragen-git-updater)[tacowordpress/tacowordpress

WordPress custom post types that feel like CRUD models

232.2k](/packages/tacowordpress-tacowordpress)

PHPackages © 2026

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