rapira / http
PSR-7 server-request factories for every Rapira run mode
Fund package maintenance!
0.1.2
2026-08-20 09:40 UTC
Requires
- php: >=8.4
- psr/http-factory: ^1.0
- psr/http-message: ^1.0 || ^2.0
- rapira/contract: dev-master
Requires (Dev)
- httpsoft/http-message: ^1.0
- testo/testo: ^0.10.42
README
rapira/http
Important
🪞 This is a read-only mirror.
Active development lives in rapira-rs/sdk-php under packages/http/. This repository is automatically synchronized from there on every release.
File issues and pull requests in the main monorepo, not here.
About
Builds a PSR-7 ServerRequestInterface from the shape Rapira hands your worker, with one factory per run mode:
SapiRequestFactory— hydrates the request from the PHP superglobals ($_SERVER,$_GET,$_POST,$_FILES), the shape Rapira exposes in classic and worker modes.DispatcherRequestFactory— hydrates it from theRapira\Http\Exchangethe host delivers in dispatcher mode, without touching the superglobals.
Both take PSR-17 factories, so you keep your project's own PSR-7 implementation.
Install
composer require rapira/http
Usage
Classic / worker mode — from the SAPI environment:
use Rapira\Sdk\Http\SapiRequestFactory; $factory = new SapiRequestFactory( $serverRequestFactory, // Psr\Http\Message\ServerRequestFactoryInterface $uriFactory, // Psr\Http\Message\UriFactoryInterface $uploadedFileFactory, // Psr\Http\Message\UploadedFileFactoryInterface $streamFactory, // Psr\Http\Message\StreamFactoryInterface ); $request = $factory->create();
Dispatcher mode — from the exchange the host delivers:
use Rapira\Sdk\Http\DispatcherRequestFactory; $factory = new DispatcherRequestFactory( $serverRequestFactory, $uploadedFileFactory, $streamFactory, ); $request = $factory->create($exchange); // Rapira\Http\Exchange