Марсель Почо поділився порадою щодо використання методу HTTP-клієнта Laravel sink() для написання відповіді на файл:
— Marcel Pociot 🧪 (@marcelpociot) June 20, 2023Я щойно дізнався про акуратний маленький недокументований метод @laravelphp HTTP-клієнта.
Метод «раковина» дозволяє передати ім'я файлу або ресурсу. Відповідь на запит буде написана в цей файл.
Це дозволяє дуже легко завантажувати віддалені файли з додатковими заголовками pic.twitter.com/ZHHURltcfA
Опція запиту на раковину також доступна в бібліотеці клієнта Guzzle HTTP, раніше save_to
опція запиту:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
// PHP stream
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['sink' => $stream]);
Якщо ви хочете дізнатися більше про всі чудові функції, які надає клас HTTP-запитів Laravel, ознайомтеся з документацією HTTP-запитів. Джерело PendingRequest - ще один чудовий ресурс, щоб побачити, як працює HTTP-клієнт Laravel під капотом.