Skip to content
/ reacon Public

๐Ÿš€ PSR-15 middleware runner

License

Notifications You must be signed in to change notification settings

ztsu/reacon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Reacon

Build Status Coverage Status

The simplest PSR-15 complaint middleware runner.

The PSR-15 providers a standard for recommendations that defines the interface for server middleware-component compatible with PSR-7 HTTP Messages.

There are a few of another PSR-15 compatible dispatchers. Middleman is the best known. Also there are a lot of PSR-15 middleware-components collected in the middlewares/psr15-middlewares.

Installation

Via Composer:

$ composer require ztsu/reacon

Usage

<?php

use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;

class CreateRequestMiddleware implements MiddlewareInterface
{
    public function process(
        ServerRequestInterface $request,
        RequestHandlerInterface $handler
    ): ResponseInterface {
        return new Zend\Diactoros\Response();
    }
}

class HelloMiddleware implements MiddlewareInterface
{
    public function process(
        ServerRequestInterface $request,
        RequestHandlerInterface $handler
    ): ResponseInterface {
        $response = $handler->handle($request);

        $response->getBody()->write("Hello, World!");

        return $response;
    }
}

$reacon = new Ztsu\Reacon\Reacon(
    new HelloMiddleware(),
    new CreateRequestMiddleware()
);

$request = Zend\Diactoros\ServerRequestFactory::fromGlobals();

$response = $reacon->handle($request);

(new Zend\Diactoros\Response\SapiEmitter)->emit($response);

License

MIT.