HackPHP Http Message. Compatible with PSR-7, PSR-15, and PSR-17
composer require hackphp/http
/** @var \Psr\Http\Message\ServerRequestInterface $request */ $request = (new ServerRequestFactory)->createFromSwoole($swooleRequest); $middlewares = [ new FirstMiddleware(), new SecondMiddleware(), function (ServerRequestInterface $request, RequestHandlerInterface $next) { return $next($request); } ]; $handler = new RequestHandler( $middlewares, $swooleResponse ); $response = $handler->handle($request); $response->send();
// create normal response $statusCode = 200; $reasonPhrase = "Ok"; $response = (new ResponseFactory)->createResponse( $statusCode, $reasonPhrase ); // create from swoole response $response = (new ResponseFactory)->createFromSwoole($swooleResponse); // Change the response body $stream = (new StreamFactory)->createStream("Hack PHP"); $response = $response->withBody($stream); // Change the status code $response = $response->withStatus(400);
// Create Request $request = (new RequestFactory)->createRequest("GET", "/"); // Create Server Request $request = (new ServerRequestFactory)->createServerRequest( "GET", "/", $_SERVER // server params ); // Create Server Request from swoole request $request = (new ServerRequestFactory)->createFromSwoole($swooleRequest);
// Create from string $stream = (new StreamFactory)->createStream("Hack PHP"); // Create from file $mode = 'r'; $stream = (new StreamFactory)->createStreamFromFile($filename, $mode); // Create from resource $stream = (new StreamFactory)->createStreamFromResource($resource);
$file = (new UploadedFileFactory)->createUploadedFile( StreamInterface $stream, ?int $size = null, int $error = \UPLOAD_ERR_OK, ?string $clientFilename = null, ?string $clientMediaType = null );
// Create URI $uri = (new UriFactory)->createUri("https://github.com/hackphp"); // Create From Swoole $uri = (new UriFactory)->createFromSwoole($swooleRequest);