phpsoftbox/http-client

PSR-18 HTTP client implementation for the PhpSoftBox framework

Maintainers

Package info

github.com/phpsoftbox/http-client

pkg:composer/phpsoftbox/http-client

Statistics

Installs: 54

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

dev-master 2026-03-05 11:41 UTC

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-18 NetworkExceptionInterface).
  • 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