PHPackages                             porta/psr14-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. [API Development](/categories/api)
4. /
5. porta/psr14-events

ActiveLibrary[API Development](/categories/api)

porta/psr14-events
==================

PortaOne ESPF event handling with PSR-14 dispatch

0.1.0(2y ago)010MITPHPPHP ^7.4|^8.0|^8.1|^8.2|^8.3

Since Jan 3Pushed 2y ago1 watchersCompare

[ Source](https://github.com/portabilling/psr14-events)[ Packagist](https://packagist.org/packages/porta/psr14-events)[ Docs](https://github.com/portabilling/psr14-event)[ RSS](/packages/porta-psr14-events/feed)WikiDiscussions master Synced 2w ago

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

About PortaOne ESPF event handling library with PSR-14 dispatch
===============================================================

[](#about-portaone-espf-event-handling-library-with-psr-14-dispatch)

Purpose
-------

[](#purpose)

This package intended to simplify PortaBilling event handling. Build for composer with PSR-4 autoload and follow PSR-14 Event Dispatcher architecture. It takes PSR-7 Request object as input to create Event, therefore may be integrated to any PSR-based framework. It seems PSR-11 (container) - friendly and a good for autowire, but does not support PSR-11 directly.

It is decoupled from all depenencies, requiring standart PSR interfaces instead of exact implementations. It uses:

- [PSR-7](https://www.php-fig.org/psr/psr-7) standard object Request used
- [PSR-14](https://www.php-fig.org/psr/psr-14) Event Dispatcher, provides specific Event, and ListenerProvider classes, and also a very generic Dispatcher implementation to avoide useless dependencies

Usage
-----

[](#usage)

Try to read and setup [example](https://github.com/portabilling/psr14-events/tree/master/example). More rich docs coming soon!

Please, reference to [PortaBilling supported event types](https://docs.portaone.com/docs/mr105-provisioning-via-webhooks?topic=supported-event-types) for event type names and variables for each type.

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

[](#installation)

In the Composer storage. Just add proper require section:

```
    "require": {
        "porta/psr14-events": "^0.1"
    }

```

Please, review the [changelog](https://github.com/portabilling/psr14-events/blob/master/CHANGELOG.MD) before to change used version.

Dependencies
------------

[](#dependencies)

Composer dependencies:

- php: ^7.4|^8.0|^8.1|^8.2|^8.3
- psr/event-dispatcher: ^1.0.0
- psr/http-message: ^2.0

Testing
-------

[](#testing)

Tested with PHPUnit 9.6 on php 7.4 to 8.3, 100% coverage, which does not mean everything will work as intended.

Current testing and compatibility status check on [Github flows](https://github.com/portabilling/psr14-events/actions/workflows/Compatibility.yml)

To test, install in dev mode and use `composer test` command from library root for run all standard modular tests

Manualy tested and used with PortaBilling release MR100.

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

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

957d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/51fb7e1bfe1a741b842ccaffe58a95229f1afa531676dff7d14e61cda27a9ae7?d=identicon)[pavlyuts](/maintainers/pavlyuts)

---

Top Contributors

[![pavlyuts](https://avatars.githubusercontent.com/u/6569739?v=4)](https://github.com/pavlyuts "pavlyuts (21 commits)")

---

Tags

apiphpportaoneeventapibillingportaoneportastartESPF

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[symfony/symfony

The Symfony PHP framework

31.4k87.4M2.2k](/packages/symfony-symfony)[openai-php/client

OpenAI PHP is a supercharged PHP API client that allows you to interact with the Open AI API

5.8k29.9M347](/packages/openai-php-client)[algolia/algoliasearch-client-php

API powering the features of Algolia.

69735.8M179](/packages/algolia-algoliasearch-client-php)[telnyx/telnyx-php

Official Telnyx PHP SDK — APIs for Voice, SMS, MMS, WhatsApp, Fax, SIP Trunking, Wireless IoT, Call Control, and more. Build global communications on Telnyx's private carrier-grade network.

36826.2k2](/packages/telnyx-telnyx-php)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.8M672](/packages/shopware-core)[wordpress/php-ai-client

A provider agnostic PHP AI client SDK to communicate with any generative AI models of various capabilities using a uniform API.

26554.3k27](/packages/wordpress-php-ai-client)

PHPackages © 2026

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