This library implements a SAPI host for dispatch of PSR-15 RequestHandlerInterface
.
In a nutshell, this is a front-controller for the index.php
file in a PSR-7/15/17 based project.
Originally a fork of Daniel Bannert's
narrowspark/http-emitter
package, this package
takes a different approach, internally leveraging Tobias Nyholm's
nyholm/psr7-server
package to bootstrap the
incoming PSR-7 Request.
The philosophy of this package is that hosting a single handler, for a single request, should be a single operation.
To bootstrap a SapiHost
, you need to pick a PSR-7 and
PSR-17 implementation - for example, nyholm/psr7-server
supports both, and you can install it with:
composer require nyholm/psr7-server
You need to have your PSR-15 handler implementation to
dispatch, and then, for example, dispatch it from an index.php
file, as follows:
<?php
use mindplay\host\SapiHost;
use Nyholm\Psr7\Factory\Psr17Factory;
$factory = new Psr17Factory();
$host = new SapiHost(
$factory,
$factory,
$factory,
$factory
);
$host->dispatch(new YourRequestHandler());
Note that Psr17Factory
implements all of the required PSR-17 factory interfaces.