phpsoftbox / http-client
PSR-18 HTTP client implementation for the PhpSoftBox framework
dev-master
2026-03-05 11:41 UTC
Requires
- php: ^8.4
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpsoftbox/http-message: dev-master
- phpunit/phpunit: ^11.2
This package is auto-updated.
Last update: 2026-03-05 11:41:41 UTC
README
About
phpsoftbox/http-client — базовая реализация PSR-18 клиента, построенная на cURL.
Компонент принимает PSR-17 фабрики ответа и стрима и возвращает ResponseInterface.
Ключевые особенности:
- минимальная обвязка вокруг cURL без внешних зависимостей;
- поддержка любых методов и заголовков;
- возможность передать дополнительные
CURLOPT_*через конструктор; - исключения PSR-18 при сетевых ошибках.
Quick Start
use PhpSoftBox\Http\Client\HttpClient; use PhpSoftBox\Http\Message\RequestFactory; use PhpSoftBox\Http\Message\ResponseFactory; use PhpSoftBox\Http\Message\StreamFactory; $client = new HttpClient( new ResponseFactory(), new StreamFactory(), [ CURLOPT_CONNECTTIMEOUT_MS => 1000, CURLOPT_TIMEOUT_MS => 5000, ], ); $response = $client->post( 'https://api.example.com/v1/ping', '{"ping":true}', ['Content-Type' => 'application/json'], ); $status = $response->getStatusCode(); $body = (string) $response->getBody(); // Если нужно отключить проверку SSL: $insecureClient = $client->withoutSslVerification();
Ошибки
NetworkException— сетевые ошибки (PSR-18NetworkExceptionInterface).HttpClientException— ошибки инициализации клиента.
Интеграции
Клиент можно напрямую передавать в компоненты, ожидающие PSR-18:
$telegram = new \PhpSoftBox\Telegram\Api\TelegramClient( token: $_ENV['TELEGRAM_BOT_TOKEN'], httpClient: $client, requestFactory: new RequestFactory(), streamFactory: new StreamFactory(), );
Требования
- PHP 8.4+
- расширение
ext-curl