PHPackages                             chillerlan/psr-15-handlers - 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. [PSR &amp; Standards](/categories/psr-standards)
4. /
5. chillerlan/psr-15-handlers

ActiveLibrary[PSR &amp; Standards](/categories/psr-standards)

chillerlan/psr-15-handlers
==========================

A set of PSR-15 middleware dispatchers and handlers.

1.0.0(2y ago)04MITPHPPHP ^8.1

Since Mar 10Pushed 2y ago1 watchersCompare

[ Source](https://github.com/chillerlan/psr-15-handlers)[ Packagist](https://packagist.org/packages/chillerlan/psr-15-handlers)[ Docs](https://github.com/chillerlan/psr-15-handlers)[ Fund](https://ko-fi.com/codemasher)[ RSS](/packages/chillerlan-psr-15-handlers/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (10)Versions (2)Used By (0)

chillerlan/psr-15-handlers
==========================

[](#chillerlanpsr-15-handlers)

A set of [PSR-15](https://www.php-fig.org/psr/psr-15/) middleware dispatchers and handlers.

[![PHP Version Support](https://camo.githubusercontent.com/fae2017f5e38b7f62a23e6a48280447950cdc5457fe2da13b0b0444f487387f4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6368696c6c65726c616e2f7073722d31352d68616e646c6572733f6c6f676f3d70687026636f6c6f723d383839324246266c6f676f436f6c6f723d666666)](https://www.php.net/supported-versions.php)[![Packagist version](https://camo.githubusercontent.com/53088253e7f010ee407e3cd349e7da20124518230fc90ac7d8827d77d55a354e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6368696c6c65726c616e2f7073722d31352d68616e646c6572732e7376673f6c6f676f3d7061636b6167697374266c6f676f436f6c6f723d666666)](https://packagist.org/packages/chillerlan/psr-15-handlers)[![License](https://camo.githubusercontent.com/4d80388e5d6bc525e41e25f4b75f702848ea6c74ebc8ba832698c9d96413860d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6368696c6c65726c616e2f7073722d31352d68616e646c6572732e737667)](https://github.com/chillerlan/psr-15-handlers/blob/main/LICENSE)[![Continuous Integration](https://camo.githubusercontent.com/6512df149f88cbb3d2c1644b57edc8828ccdabab91f391799fd347cba00601d6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6368696c6c65726c616e2f7073722d31352d68616e646c6572732f63692e796d6c3f6272616e63683d6d61696e266c6f676f3d676974687562266c6f676f436f6c6f723d666666)](https://github.com/chillerlan/psr-15-handlers/actions/workflows/ci.yml?query=branch%3Amain)[![CodeCov](https://camo.githubusercontent.com/d70043eb87cb9580f1da0bb3e86cd43707674bf1d3462a9473fa5d0598fa589e/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f6368696c6c65726c616e2f7073722d31352d68616e646c6572732e7376673f6c6f676f3d636f6465636f76266c6f676f436f6c6f723d666666)](https://codecov.io/github/chillerlan/psr-15-handlers)[![Codacy](https://camo.githubusercontent.com/c1cc7796ca03f4f752cc2325105731a3ee2a6bd2723d27ce4f84a53ff9e7745d/68747470733a2f2f696d672e736869656c64732e696f2f636f646163792f67726164652f61333264306565323265653334333464386264313165633961306462346530333f6c6f676f3d636f64616379266c6f676f436f6c6f723d666666)](https://app.codacy.com/gh/chillerlan/psr-15-handlers/dashboard)[![Packagist downloads](https://camo.githubusercontent.com/9ded1dd06f359ee7961bef0ee3a0458ee750ff792d06930f1f11b9f64fbd526e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6368696c6c65726c616e2f7073722d31352d68616e646c6572732e7376673f6c6f676f3d7061636b6167697374266c6f676f436f6c6f723d666666)](https://packagist.org/packages/chillerlan/psr-15-handlers/stats)

Overview
--------

[](#overview)

### Features

[](#features)

- [PSR-15](https://www.php-fig.org/psr/psr-15/) handler implementation
    - `QueueDispatcher`
    - `PriorityQueueDispatcher`
    - `RecursiveDispatcher`

### Requirements

[](#requirements)

- PHP 8.1+

Documentation
-------------

[](#documentation)

An API documentation created with [phpDocumentor](https://www.phpdoc.org/) can be found at

Disclaimer
----------

[](#disclaimer)

Use at your own risk!

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

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

799d ago

### Community

Maintainers

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

---

Top Contributors

[![codemasher](https://avatars.githubusercontent.com/u/592497?v=4)](https://github.com/codemasher "codemasher (8 commits)")

---

Tags

middlewaremiddleware-dispatchersphpphp8psr-15server-handlermiddlewarehandlerpsr-15dispatcher

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/chillerlan-psr-15-handlers/health.svg)

```
[![Health](https://phpackages.com/badges/chillerlan-psr-15-handlers/health.svg)](https://phpackages.com/packages/chillerlan-psr-15-handlers)
```

###  Alternatives

[yiisoft/yii-middleware

Yii Middleware

21151.3k1](/packages/yiisoft-yii-middleware)

PHPackages © 2026

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