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 9y 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 2mo 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 14% 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

[friendsofsymfony/rest-bundle

This Bundle provides various tools to rapidly develop RESTful API's with Symfony

2.8k73.3M319](/packages/friendsofsymfony-rest-bundle)[php-http/discovery

Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations

1.3k309.5M1.2k](/packages/php-http-discovery)[nyholm/psr7

A fast PHP7 implementation of PSR-7

1.3k235.4M2.4k](/packages/nyholm-psr7)[pusher/pusher-php-server

Library for interacting with the Pusher REST API

1.5k94.8M293](/packages/pusher-pusher-php-server)[spatie/crawler

Crawl all internal links found on a website

2.8k16.3M52](/packages/spatie-crawler)[react/http

Event-driven, streaming HTTP client and server implementation for ReactPHP

78126.4M414](/packages/react-http)

PHPackages © 2026

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