Download the PHP package matthiasmullie/router without Composer
On this page you can find all versions of the php package matthiasmullie/router. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download matthiasmullie/router
More information about matthiasmullie/router
Files in matthiasmullie/router
Package router
Short Description PSR-15 based router interface on top of FastRoute
License MIT
Homepage https://github.com/matthiasmullie/router
Informations about the package router
Router
Installation
Simply add a dependency on matthiasmullie/router
to your composer.json file if you use Composer to manage the dependencies of your project:
Usage
Routes
This router provides a simple way to map routes (request method + path) to request handlers.
Request handlers are classes that implement PSR-15's the Psr\Http\Server\RequestHandlerInterface
interface,
which accept a Psr\Http\Message\ServerRequestInterface
and return a Psr\Http\Message\ResponseInterface
object.
This is essentially just a simple PSR-15 layer on top of FastRoute.
It's about as simple as that:
Groups
For convenient, routes with the same prefix can be bundled together in a group.
Like so:
Middleware
In addition to PSR-15's request handlers, this router also supports PSR-15's Psr\Http\Server\MiddlewareInterface
,
which wrap around a request handler, executing either or both before and after handling the request.
This simplifies logic that is shared between multiple request handlers, like authentication, logging, etc.
Middleware can be added to individual routes, all routes within a group, or simply all routes.
Like this:
Exceptions
By default, any exception that is encountered, either within the request handler/middleware, or as part of routing (e.g. invalid route), will simply be thrown. It is, however, possible to add a custom exception handler, which will catch any exception and return a response.
This can be done by supplying an MatthiasMullie\Router\ExceptionResponseInterface
instance to the router, e.g. the provided MatthiasMullie\Router\ExceptionResponse
.
This will catch any exception and return a response with the appropriate status code.
This package also comes with a custom MatthiasMullie\Router\Exception
class that allows including HTTP status codes and headers in the exception.
Example:
License
router is MIT licensed.
All versions of router with dependencies
ext-json Version *
nikic/fast-route Version ^1.3.0
psr/log Version ^1.0 || ^2.0 || ^3.0
psr/http-message Version ^1.0
psr/http-message-implementation Version ^1.0 || ^2.0
psr/http-server-handler Version ^1.0
psr/http-server-middleware Version ^1.0