PHPackages                             jeremygiberson/psr7-push-notification-middleware - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. jeremygiberson/psr7-push-notification-middleware

ActiveLibrary[HTTP &amp; Networking](/categories/http)

jeremygiberson/psr7-push-notification-middleware
================================================

PSR7 Middleware for handling push notifications

16PHP

Since Jun 14Pushed 10y agoCompare

[ Source](https://github.com/jeremygiberson/psr7-push-notification-middleware)[ Packagist](https://packagist.org/packages/jeremygiberson/psr7-push-notification-middleware)[ RSS](/packages/jeremygiberson-psr7-push-notification-middleware/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependenciesVersions (1)Used By (0)

psr7-push-notification-middleware
=================================

[](#psr7-push-notification-middleware)

PSR7 middleware for handling push notifications. Detects push notifications and triggers a push notification event.

The middleware checks to see if it recognizes the incoming HTTP request as a push notification. If the request is recognized an appropriate event is dispatched. If the request is not recognized the next middleware is called.

By default when a push notification request is handled the middleware chain is terminated. That is, even if the request is pointed to a valid route like `/do/something/route` or even `/`, that route functionality will not be executed.

```
request -> push notification middleware
    if request is recognized push notification
        -> dispatch notification event
        -> return 200 response
    else
        -> return $next_middleware(request, response)

```

Usage
-----

[](#usage)

Ideally, you will add notification event subscribers to the event dispatcher you factory the middleware with. These listeners will do interesting things when a push notification arrives.

The default

Supported Push Notifications
============================

[](#supported-push-notifications)

The library provides support for some common services that provide push notifications.

AWS SNS Notifications
---------------------

[](#aws-sns-notifications)

Github Webhook Notifications
----------------------------

[](#github-webhook-notifications)

Gitlab Webhook Notifications
----------------------------

[](#gitlab-webhook-notifications)

[https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/web\_hooks/web\_hooks.md](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/web_hooks/web_hooks.md)

Slack Webhook Notifications \[todo\]
------------------------------------

[](#slack-webhook-notifications-todo)

Jenkins Notification Plugin \[todo\]
------------------------------------

[](#jenkins-notification-plugin-todo)

Any Other Notification via Custom Matcher
-----------------------------------------

[](#any-other-notification-via-custom-matcher)

Write a matcher that implements MatcherInterface and you can support any notification.

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/c2445eabf60869a0410b641fbec7b87fea798e5d12e6e31120223cbc230a97ec?d=identicon)[jeremygiberson](/maintainers/jeremygiberson)

---

Top Contributors

[![jeremygiberson](https://avatars.githubusercontent.com/u/487411?v=4)](https://github.com/jeremygiberson "jeremygiberson (1 commits)")

### Embed Badge

![Health badge](/badges/jeremygiberson-psr7-push-notification-middleware/health.svg)

```
[![Health](https://phpackages.com/badges/jeremygiberson-psr7-push-notification-middleware/health.svg)](https://phpackages.com/packages/jeremygiberson-psr7-push-notification-middleware)
```

###  Alternatives

[php-http/cache-plugin

PSR-6 Cache plugin for HTTPlug

25126.1M81](/packages/php-http-cache-plugin)[illuminate/http

The Illuminate Http package.

11937.2M6.6k](/packages/illuminate-http)[rdkafka/rdkafka

A PHP extension for Kafka

2.2k20.0k1](/packages/rdkafka-rdkafka)[httpsoft/http-message

Strict and fast implementation of PSR-7 and PSR-17

87965.9k113](/packages/httpsoft-http-message)[mezzio/mezzio-router

Router subcomponent for Mezzio

265.4M85](/packages/mezzio-mezzio-router)[serpapi/google-search-results-php

Get Google, Bing, Baidu, Ebay, Yahoo, Yandex, Home depot, Naver, Apple, Duckduckgo, Youtube search results via SerpApi.com

69127.2k](/packages/serpapi-google-search-results-php)

PHPackages © 2026

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