Изначально Mezon Router не был совместим с PSR-7. Но одна из последних реализованных фич сделала это возможным. Можно использовать middleware для этих целей.
$router = new Router();
$router->addRoute('/user/[i:id]', function(\Nyholm\Psr7\Request $request){
// work here with the request in PSR-7 way
$psr17Factory = new \Nyholm\Psr7\Factory\Psr17Factory();
$responseBody = $psr17Factory->createStream('Hello world');
$response = $psr17Factory->createResponse(200)->withBody($responseBody);
(new \Zend\HttpHandlerRunner\Emitter\SapiEmitter())->emit($response); });
$router->registerMiddleware('/user/[i:id]', function(string $route, array $parameters){
$psr17Factory = new \Nyholm\Psr7\Factory\Psr17Factory();
$creator = new \Nyholm\Psr7Server\ServerRequestCreator(
$psr17Factory,
// ServerRequestFactory
$psr17Factory,
// UriFactory
$psr17Factory,
// UploadedFileFactory
$psr17Factory
// StreamFactory );
return $creator->fromGlobals();
});
Что такое Mezon Router?
mezon/router это:
- фреймворк для роутинга со 100% покрытием кода;
- 10.0 баллов на scrutinizer-ci.com
- роутер является частью проекта Mezon
Репа на github.com: https://github.com/alexdodonov/mezon-router