PHPackages                             siriusphp/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. siriusphp/middleware

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

siriusphp/middleware
====================

Lightweight middleware implementation. 1 class,

1.1.0(9y ago)11061MITPHPPHP &gt;=5.4

Since Jun 11Pushed 9y ago1 watchersCompare

[ Source](https://github.com/siriusphp/middleware)[ Packagist](https://packagist.org/packages/siriusphp/middleware)[ Docs](https://github.com/sirius/middleware)[ RSS](/packages/siriusphp-middleware/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (4)Versions (3)Used By (1)

Sirius Middleware
=================

[](#sirius-middleware)

[![Source Code](https://camo.githubusercontent.com/6a91f88509e572ea49ae21c941200cf7d3d6785be668d4c3bc434b9264bd24cc/687474703a2f2f696d672e736869656c64732e696f2f62616467652f736f757263652d7369726975737068702f6d6964646c65776172652d626c75652e7376673f7374796c653d666c61742d737175617265)](https://github.com/siriusphp/middleware)[![Latest Version](https://camo.githubusercontent.com/f7cc0b9c6387d86039fce0f6a10e3c9349a867cf48267f3a1ee47aa66736ccde/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7369726975737068702f6d6964646c65776172652e7376673f7374796c653d666c61742d737175617265)](https://github.com/siriusphp/middleware/releases)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](https://github.com/siriusphp/middleware/blob/master/LICENSE)[![Build Status](https://camo.githubusercontent.com/a33af87070c46c9f8515b77506e2d4a803800146ad20ee22827936e3d569837f/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f7369726975737068702f6d6964646c65776172652f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/siriusphp/middleware)[![Coverage Status](https://camo.githubusercontent.com/80cb995b7065f2ea52834c74cf58cc50930e68d273abf869b660dc62a5a0431a/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f7369726975737068702f6d6964646c65776172652e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/siriusphp/middleware/code-structure)[![Quality Score](https://camo.githubusercontent.com/20c9d99ae1c5f6a11cc1acf752172b84df7752179a3213f01328a325a8cb7dae/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f7369726975737068702f6d6964646c65776172652e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/siriusphp/middleware)

Regular middleware
------------------

[](#regular-middleware)

```
$middlewares = array();

$middlewares[] = function(RequestInterface $request, ResponseInterface $response, callable $next = null) {
    // do your thing
    return $response;
};

$middlewares[] = function(RequestInterface $request, ResponseInterface $response, callable $next = null) {
    // do your thing
    return $response;
};

$runner = Sirius\Middleware\Runner::factory($middlewares);

$response = $runner(Zend\Diactoros\ServerRequestFactory::fromGlobals(), new Zend\Diactoros\Response);
```

The middleware runners are immutable so adding a new middleware returns a new runner. If you want to create the runner by hand

```
// this is WRONG!!!!!!!!!
$runner = new Sirius\Middleware\Runner;
$runner->add(function(RequestInterface $request, ResponseInterface $response, callable $next = null) {
    // do your thing
    return $response;
});
$runner->add(function(RequestInterface $request, ResponseInterface $response, callable $next = null) {
    // do your thing
    return $response;
});

// this is CORRECT
$runner =  (new Sirius\Middleware\Runner)
            ->add(function(RequestInterface $request, ResponseInterface $response, callable $next = null) {
              // do your thing
              return $response;
            })
            ->add(function(RequestInterface $request, ResponseInterface $response, callable $next = null) {
              // do your thing
              return $response;
            });
```

Frame middleware
----------------

[](#frame-middleware)

Inspired by this article

```
$middlewares = array();

// first middleware in the stack must return an response
$middlewares[] = function(RequestInterface $request, callable $next = null) {
    return new Zend\Diactoros\Response;
};

$middlewares[] = function(RequestInterface $request, callable $next = null) {
    // do your thing
    return $response;
};

$middlewares[] = function(RequestInterface $request, callable $next = null) {
    // do your thing
    return $response;
};

$runner = Sirius\Middleware\FrameRunner::factory($middlewares);

$response = $runner(Zend\Diactoros\ServerRequestFactory::fromGlobals());
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity59

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

Every ~10 days

Total

2

Last Release

3615d ago

### Community

Maintainers

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

---

Top Contributors

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

---

Tags

middlewarephppsr-7runnerhttpresponserequestpsrpsr-7middlewarezend-diactoros

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/siriusphp-middleware/health.svg)

```
[![Health](https://phpackages.com/badges/siriusphp-middleware/health.svg)](https://phpackages.com/packages/siriusphp-middleware)
```

###  Alternatives

[psr/http-factory

PSR-17: Common interfaces for PSR-7 HTTP message factories

1.9k692.9M1.9k](/packages/psr-http-factory)[psr/http-server-middleware

Common interface for HTTP server-side middleware

18091.2M1.5k](/packages/psr-http-server-middleware)[psr/http-server-handler

Common interface for HTTP server-side request handler

175101.3M921](/packages/psr-http-server-handler)[idealo/php-middleware-stack

Implementation of HTTP Middleware PSR-15 specification

318.9k](/packages/idealo-php-middleware-stack)[art4/requests-psr18-adapter

Use WordPress/Requests as a PSR-18 HTTP client

153.3k](/packages/art4-requests-psr18-adapter)

PHPackages © 2026

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