HTTP Client: API и эксплуатация
Текущая ветка исходников требует PHP 8.2+, ext-curl, ext-json, Localzet Server ^7.0, Localzet PSR-7 ^3.0 и psr/http-message:^2.0. Опубликованный v2.0.2 относится к Server 4.2; перед установкой сверяйте манифест stable tag и текущий манифест. Ветка dev-main не является стабильным релизом.
Методы запроса
Client::get($url, $headers = [], $success = null, $error = null)отправляет GET.Client::post($url, $data = [], $headers = [], $success = null, $error = null)отправляет POST form data.Client::request($url, $method = 'GET', $data = [], $headers = [], $options = [])задаёт общий вариант запроса.ParallelClient::push($url, $options)иbatch($set)накапливают запросы;await($errorThrow = false)ожидает завершения и возвращает результаты.
При переданных callbacks запрос завершается асинхронно: ответ доступен только в callback успеха, ошибки передаются в callback ошибки. На поддерживаемом Unix event loop вызов request() без callback может приостановить текущую Fiber и вернуть результат, но для кода приложения предпочтительно явно обрабатывать оба callback. HTTP status code сам по себе не считается транспортной ошибкой.
Пул и эксплуатация
$client = new \localzet\HTTP\Client([
'max_conn_per_addr' => 32,
'keepalive_timeout' => 15,
'connect_timeout' => 5,
'timeout' => 20,
]);
Опции пула относятся к каждому адресу; задавайте конечные таймауты и ограничение соединений под свой трафик. Они заменяют соответствующие значения по умолчанию, а вложенные настройки объединяются по ключам. Не блокируйте callback долгой работой, редактируйте credentials перед логированием и не отключайте проверку TLS в production. Закрытие пула, redirect policy, отмена и streaming требуют проверки на точной версии кода и целевой среде.
В репозитории нет сопровождаемого набора сквозных тестов для сетевых edge cases. Перед использованием проверьте TLS trust chain, редиректы, response body, медленный/оборванный upstream и закрытие соединений. Не закрепляйте dev-ветку в production до выпуска совместимого стабильного тега.

