stefna / http-runner
1.0.0
2023-03-21 08:59 UTC
Requires
- php: ^8.2
- nyholm/psr7: ^1.5.1
- psr/http-factory: ^1.0.1
- psr/http-message: ^1.0.1
- psr/http-server-handler: ^1.0.1
- psr/http-server-middleware: ^1.0.1
- psr/log: ^3.0
Requires (Dev)
- bnf/phpstan-psr-container: ^1.0
- phpstan/extension-installer: ^1.2
- phpstan/phpstan: ^1.8
- phpstan/phpstan-phpunit: ^1.1
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: dev-master
- stefna/codestyle: ^1.12
- tomasvotruba/type-coverage: ^0.0.7
README
本包提供了一个带有辅助器的psr-15实现。
要求
PHP 8.2或更高版本。
安装
composer require stefna/http-runner
入门
<?php use Psr\Container\ContainerInterface; use Psr\Http\Message\ResponseFactoryInterface; use Psr\Http\Message\ServerRequestInterface; use Stefna\Http\Middleware\ContainerMiddlewareResolver; use Stefna\Http\Middleware\NullMiddlewareResolver; use Stefna\Http\Middleware\Runner; use Stefna\Http\Middleware\SimpleMiddlewarePipeline; use Stefna\Http\Request\ServerRequestMarshal; use Stefna\Http\ResponseHandler\HttpResponseHandler; /** @var ContainerInterface $container */ /** @var ResponseFactoryInterface $responseFactory */ $middlewares = new SimpleMiddlewarePipeline( new CrashMiddleware(), new SessionMiddleware(), new RouterMiddleware(), new RouteDispatchMiddleware(), ); // no resolving of middlewares all middlewares need to be instantiated earlier $middlewareResolver = new NullMiddlewareResolver(); // or if middleware is a string look in container for it and lazy create it when needed $middlewareResolver = new ContainerMiddlewareResolver($container); $runner = new Runner( $middlewares, $responseFactory, $middlewareResolver, ); // boot request /** @var ServerRequestInterface $request */ $request = (new ServerRequestMarshal())->marshal($_SERVER); // dispatch middlewares and get a response back $response = $runner->handle($request); // send response (new HttpResponseHandler())->handle($response);
贡献
我们总是乐于接收错误/安全报告和错误/安全修复。
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。