Простой способ делать простые 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();

👌