2017 © Pedro Peláez
 

library dispatch

A shrimp of a PSR-15 compliant middleware dispatcher

image

caridea/dispatch

A shrimp of a PSR-15 compliant middleware dispatcher

  • Sunday, February 11, 2018
  • by doublecompile
  • Repository
  • 1 Watchers
  • 1 Stars
  • 6 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 100 % Grown

The README.md

caridea-dispatch

Caridea is a miniscule PHP application library. This shrimpy fellow is what you'd use when you just want some helping hands and not a full-blown framework., (*1)

, (*2)

This is its PSR-7 and PSR-15 compliant request handler, with a few middleware implementations., (*3)

Packagist Build Status Scrutinizer Code Quality Code Coverage Documentation Status, (*4)

Installation

You can install this library using Composer:, (*5)

$ composer require caridea/dispatch
  • The master branch (version 3.x) of this project requires PHP 7.1 and depends on psr/http-message, psr/http-server-handler, and psr/http-server-middleware.

Compliance

Releases of this library will conform to Semantic Versioning., (*6)

Our code is intended to comply with PSR-1, PSR-2, and PSR-4. If you find any issues related to standards compliance, please send a pull request!, (*7)

Documentation

Examples

Just a few quick examples., (*8)

Runner

You can use the Runner to give it some middleware and let it handle your request., (*9)

$request = new \Zend\Diactoros\ServerRequest();
// I generally use zend-diactoros, but feel free to use whatever PSR-7 library you use

$middleware = [
    // your custom \Psr\Http\Server\MiddlewareInterface objects
];
$runner = new \Caridea\Dispatch\Runner($middleware);
$response = $runner->handle($request);

Your final middleware should create and return a PSR-7 ResponseInterface. You can also provide one to the Runner constructor and it handles it automatically., (*10)

$response = new \Zend\Diactoros\Response();
$runner = new \Caridea\Dispatch\Runner($middleware, $response);
$response = $runner->handle($request);

A Runner is immutable. You can use it more than once., (*11)

$runner = new \Caridea\Dispatch\Runner($middleware);
$response1 = $runner->handle($request);
$response2 = $runner->handle($request);

Priority Runner

We included an extension of the MiddlewareInterface: Caridea\Dispatch\Middleware\Prioritized. Using the Caridea\Dispatch\PriorityRunner, you can provide middleware out of order, and they get invoked in order of priority., (*12)

$middleware = [
    // your custom \Psr\Http\Server\MiddlewareInterface objects.
    // Any that implement Prioritized will get run in priority order,
    // Any others get run last, in insert order.
];
$runner = new \Caridea\Dispatch\PriorityRunner($middleware);

You can also use the Caridea\Dispatch\Middleware\PriorityDelegate class to assign priority to an existing middleware implementation., (*13)

$middleware = new \Caridea\Dispatch\Middleware\PriorityDelegate($middleware, 123456);

Middleware

Middleware implementations we include., (*14)

Reporter

Use the Caridea\Dispatch\Middleware\Reporter to capture Throwables, log them, and re-throw the exception. PSR-3 required., (*15)

Prototype

A simple middleware that returns a ResponseInterface you provide., (*16)

See Also

  • This blog post from Matthew Weier O'Phinney about why PSR-15 ditched the old pattern of "double pass" middleware with anonymous functions.

The Versions

11/02 2018

dev-master

9999999-dev http://github.com/libreworks/caridea-dispatch

A shrimp of a PSR-15 compliant middleware dispatcher

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

middleware psr-7 psr-15 dispatch request handler

11/02 2018

3.0.0

3.0.0.0 http://github.com/libreworks/caridea-dispatch

A shrimp of a PSR-15 compliant middleware dispatcher

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

middleware psr-7 psr-15 dispatch request handler