PHPackages                             middlewares/fast-route - 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. middlewares/fast-route

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

middlewares/fast-route
======================

Middleware to use FastRoute

v2.1.0(1y ago)96191.1k—7.9%715MITPHPPHP ^7.2 || ^8.0CI passing

Since Oct 9Pushed 1y ago4 watchersCompare

[ Source](https://github.com/middlewares/fast-route)[ Packagist](https://packagist.org/packages/middlewares/fast-route)[ Docs](https://github.com/middlewares/fast-route)[ RSS](/packages/middlewares-fast-route/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (9)Versions (17)Used By (15)

middlewares/fast-route
======================

[](#middlewaresfast-route)

[![Latest Version on Packagist](https://camo.githubusercontent.com/06a8479c18160cf5bbe86d4a44fdc370fdfd1961b53ab91c355514a059407cd1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d6964646c6577617265732f666173742d726f7574652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/middlewares/fast-route)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Testing](https://github.com/middlewares/fast-route/workflows/testing/badge.svg)](https://github.com/middlewares/fast-route/workflows/testing/badge.svg)[![Total Downloads](https://camo.githubusercontent.com/36fceedf866b42b06a832a62ae08b942c60844dd5b3843c1e7c177d89006601c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d6964646c6577617265732f666173742d726f7574652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/middlewares/fast-route)

Middleware to use [FastRoute](https://github.com/nikic/FastRoute) for handler discovery.

Requirements
------------

[](#requirements)

- PHP &gt;= 7.2
- A [PSR-7 http library](https://github.com/middlewares/awesome-psr15-middlewares#psr-7-implementations)
- A [PSR-15 middleware dispatcher](https://github.com/middlewares/awesome-psr15-middlewares#dispatcher)

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

[](#installation)

This package is installable and autoloadable via Composer as [middlewares/fast-route](https://packagist.org/packages/middlewares/fast-route).

```
composer require middlewares/fast-route
```

You may also want to install [middlewares/request-handler](https://packagist.org/packages/middlewares/request-handler).

Example
-------

[](#example)

This example uses [middlewares/request-handler](https://github.com/middlewares/request-handler) to execute the route handler:

```
//Create the router dispatcher
$dispatcher = FastRoute\simpleDispatcher(function (FastRoute\RouteCollector $r) {
    $r->addRoute('GET', '/hello/{name}', function ($request) {
        //The route parameters are stored as attributes
        $name = $request->getAttribute('name');

        //You can echo the output (it will be captured and written into the body)
        echo sprintf('Hello %s', $name);

        //Or return a string
        return sprintf('Hello %s', $name);

        //Or return a response
        return new Response();
    });
});

$dispatcher = new Dispatcher([
    new Middlewares\FastRoute($dispatcher),
    new Middlewares\RequestHandler()
]);

$response = $dispatcher->dispatch(new ServerRequest('/hello/world'));
```

**FastRoute** allows anything to be defined as the router handler (a closure, callback, action object, controller class, etc). The middleware will store this handler in a request attribute.

Usage
-----

[](#usage)

Create the middleware with a `FastRoute\Dispatcher` instance:

```
$route = new Middlewares\FastRoute($dispatcher);
```

Optionally, you can provide a `Psr\Http\Message\ResponseFactoryInterface` as the second argument, that will be used to create the error responses (`404` or `405`). If it's not defined, [Middleware\\Utils\\Factory](https://github.com/middlewares/utils#factory) will be used to detect it automatically.

```
$responseFactory = new MyOwnResponseFactory();

$route = new Middlewares\FastRoute($dispatcher, $responseFactory);
```

### attribute

[](#attribute)

Changes the attribute name used to store the handler in the server request. The default name is `request-handler`.

```
$dispatcher = new Dispatcher([
    //Save the route handler in an attribute called "route"
    (new Middlewares\FastRoute($dispatcher))->attribute('route'),

    //Execute the route handler
    (new Middlewares\RequestHandler())->handlerAttribute('route')
]);
```

---

Please see [CHANGELOG](CHANGELOG.md) for more information about recent changes and [CONTRIBUTING](CONTRIBUTING.md) for contributing details.

The MIT License (MIT). Please see [LICENSE](LICENSE) for more information.

###  Health Score

53

—

FairBetter than 97% of packages

Maintenance46

Moderate activity, may be stable

Popularity47

Moderate usage in the ecosystem

Community29

Small or concentrated contributor base

Maturity76

Established project with proven stability

 Bus Factor1

Top contributor holds 87.3% 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 ~205 days

Recently: every ~585 days

Total

16

Last Release

421d ago

Major Versions

v0.9.0 → v1.0.02018-01-27

v1.2.1 → v2.0.02019-11-29

PHP version history (4 changes)v0.1.0PHP ^5.6 || ^7.0

v0.9.0PHP ^7.0

v2.0.0PHP ^7.2

v2.0.1PHP ^7.2 || ^8.0

### Community

Maintainers

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

![](https://www.gravatar.com/avatar/42e0d72f42eb7d84f67e20d28606da42e5a3248ca908b1eadb4366aafeae2561?d=identicon)[filisko](/maintainers/filisko)

---

Top Contributors

[![oscarotero](https://avatars.githubusercontent.com/u/377873?v=4)](https://github.com/oscarotero "oscarotero (62 commits)")[![shadowhand](https://avatars.githubusercontent.com/u/38203?v=4)](https://github.com/shadowhand "shadowhand (4 commits)")[![filisko](https://avatars.githubusercontent.com/u/8798694?v=4)](https://github.com/filisko "filisko (2 commits)")[![martinstuecklschwaiger](https://avatars.githubusercontent.com/u/1061218?v=4)](https://github.com/martinstuecklschwaiger "martinstuecklschwaiger (1 commits)")[![sagikazarmark](https://avatars.githubusercontent.com/u/1226384?v=4)](https://github.com/sagikazarmark "sagikazarmark (1 commits)")[![smalot](https://avatars.githubusercontent.com/u/1424035?v=4)](https://github.com/smalot "smalot (1 commits)")

---

Tags

fastroutehttpmiddlewarepsr-15routerhttppsr-7middlewarerouterserverpsr-15fast-routeFastRoute

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/middlewares-fast-route/health.svg)

```
[![Health](https://phpackages.com/badges/middlewares-fast-route/health.svg)](https://phpackages.com/packages/middlewares-fast-route)
```

###  Alternatives

[middlewares/request-handler

Middleware to execute request handlers

451.6M26](/packages/middlewares-request-handler)[middlewares/negotiation

Middleware to implement content negotiation

47442.1k11](/packages/middlewares-negotiation)[middlewares/payload

Middleware to parse the body of the request with support for json, csv and url-encode

32466.8k17](/packages/middlewares-payload)[middlewares/http-authentication

Middleware to implement Basic and Digest Http authentication

35302.0k2](/packages/middlewares-http-authentication)[middlewares/whoops

Middleware to use Whoops as error handler

33205.4k24](/packages/middlewares-whoops)[middlewares/aura-router

Middleware to use Aura.Router

1110.9k3](/packages/middlewares-aura-router)

PHPackages © 2026

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