← Ко всем open source проектам

Guzzle

guzzle/guzzle

Guzzle — расширяемый HTTP-клиент для PHP с синхронными и асинхронными запросами.

Форки 2,390
Автор guzzle
Язык PHP
Лицензия MIT
Обновлено 2026-06-27

Кратко

Guzzle упрощает HTTP-запросы в PHP: query string, POST, JSON, cookies, загрузки, скачивания, PSR-7 и PSR-18 живут в одном зрелом клиенте.

Что это такое

Guzzle — HTTP-клиент для PHP. Он нужен приложениям, которые общаются с внешними API, загружают файлы, отправляют JSON, работают с cookies или строят интеграции.

Что внутри

Проект использует PSR-7-интерфейсы для requests, responses и streams, а также поддерживает PSR-18. Это помогает Guzzle сосуществовать с другими совместимыми библиотеками.

Как используют

Guzzle часто ставят в серверные приложения, фоновые задачи, SDK и интеграционные слои. Разработчик описывает запрос, получает response-объект и обрабатывает статус, headers и тело, не привязывая доменную логику к низкоуровневому cURL-коду.

Пример

GET-запрос

Пример показывает базовый запрос к JSON API и разбор ответа через PSR-совместимый объект.

Язык: PHP
$client = new \GuzzleHttp\Client();
$response = $client->get("https://api.example.com/users");

$data = json_decode((string) $response->getBody(), true);

Сильные стороны

Сильная сторона Guzzle — универсальность. Один клиент закрывает простые GET-запросы и более сложные сценарии с потоками, multipart-данными и асинхронностью.

Ограничения

Ограничение — граница ответственности. Guzzle отправляет HTTP, но не решает retry-политику, rate limit, кеширование и доменную обработку ошибок без явной настройки приложения.

Контекст проекта

Guzzle ведется в репозитории guzzle/guzzle; публичная история проекта начинается 2011-02-28. Основной язык в метаданных — PHP, лицензия — MIT.

Этот контекст помогает читать страницу как разбор конкретного репозитория: у проекта есть владелец, техническая база, лицензия, история изменений и реальные ограничения выбранной экосистемы.

Guzzle стоит оценивать через конкретный сценарий: кто будет поддерживать инструмент, где он встраивается в существующий стек, какие обновления придется отслеживать и что произойдет при ошибке. Такой взгляд лучше простой установки ради популярности, потому что открытый проект приносит пользу только тогда, когда его место в системе понятно команде.

Перед внедрением полезно отдельно проверить документацию, частоту релизов, модель лицензирования, требования к окружению и то, насколько легко проект будет удалить или заменить, если выбранный путь перестанет подходить продукту.