Простой способ делать простые HTTP запросы на PHP
Хочу делать простые post($url, $jsonBody)
и get($url)
без долгих настроек и подготовок.
Intro
У JS есть fetch() и axios - замечательные библиотеки для HTTP запросов.
У PHP есть curl с “великолепным” API использовать который чисто теоретически возможно использовать, но связываться с ним не хочется.
Ещё есть Guzzle, который совместим с PSR-18
и даёт нам sendRequest
.
Но я хочу делать ->post($url, $jsonBody)
и ->get($url)
. Хочу синтаксического сахара.
Также рассуждал автор zttp, но проект был поглощён Laravel и больше не поддерживается.
Есть логическое продолжение zttp
: xttp,
но он тоже больше не поддерживается.
Я уже почти бросился писать свою обёртку, но решил поискать ещё немного и наткнулся на проект Torch, который приводит примеры, как использовать компоненты Laravel вне проекта на Laravel.
И там есть пример для http клиента Laravel. То что нужно!
Так и как?
composer req guzzlehttp/guzzle illuminate/http
Клиент:
$http = new \Illuminate\Http\Client\Factory();
POST:
$response = $http->post('https://jsonplaceholder.typicode.com/posts', [
'title' => 'foo',
'body' => 'bar',
'userId' => 1,
]);
$id = $response->json()['id'];
GET:
$response = $http->get('https://jsonplaceholder.typicode.com/posts');
echo $response->body();