mindplay / sapi-host
FCGI SAPI host for dispatch of PSR-15 Handler
Requires
- php: ^8.1
- nyholm/psr7-server: ^1.0.1
- psr/http-factory: ^1.0
- psr/http-message: ^1 || ^2
- psr/http-server-handler: ^1.0
Requires (Dev)
- mindplay/readable: ^1.2
- mindplay/testies: ^1.1
- nyholm/psr7: ^1.1
- phpunit/php-code-coverage: ^10 || ^11
Replaces
This package is auto-updated.
Last update: 2024-10-26 11:50:20 UTC
README
This library implements a SAPI host for dispatch of PSR-15 HandlerInterface
.
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.
Usage
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.