Сериализация объекта Illuminate\Http\Client\Response в Laravel

Категория: Laravel

Как сериализовать объект класса Illuminate\Http\Client\Response в Laravel 7.

Объект Response в Laravel представляет обертку над \GuzzleHttp\Psr7\Response. 

Если попытаться использовать нативные serialize/unserialize - объект будет терять тело документа body (буфер, поток).

Чтобы все сделать правильно, нужно использовать ф-ции сериализации от Guzzle:

/** @var \Illuminate\Http\Client\Response $response */
$response = \Http::get($url);
$serializedResponse = \GuzzleHttp\Psr7\str($response->toPsrResponse());

/* @var \GuzzleHttp\Psr7\Response $unserializedResponse */
$unserializedResponse = \GuzzleHttp\Psr7\parse_response($cachedResponse);
$response = new \Illuminate\Http\Client\Response($cachedResponse);

#php, #laravel, #guzzle, #serialize,

категория: Laravel