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(7mo 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 7mo 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 2d 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

40

—

FairBetter than 86% of packages

Maintenance54

Moderate activity, may be stable

Popularity22

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 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

218d 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.8k230.2k13](/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.7k](/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)
