この記事で解決できる悩み

こんな悩みを解決できる記事を書きました!
僕は現役フリーランスエンジニア(歴10年)で、資格は13個保有しています。
「LaravelのGuzzleでタイムアウトを発生させる方法を知りたい」とお考えではありませんか?
結論からお伝えすると、Guzzleのオプション「on_headers」を使えば簡単に設定できます。



意外と簡単なのでサクッと解説します。
ということで、本記事ではLaravelのGuzzleでタイムアウトを発生させる方法を解説します。





すぐ読み終わるので、ぜひ最後まで読んでくださいませ。
目次
【Laravel】Guzzleでタイムアウトを発生させる方法
早速ですが、LaravelのGuzzleでタイムアウトを発生させる方法を解説します。
<?php
namespace App\Facades;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
class SampleFacade
{
private Client $client;
public function __construct()
{
$this->client = new Client();
}
public function request(string $method, string $url, array $options = []): mixed
{
$options['on_headers'] = function () {
sleep(30);
};
try {
return $this->client->request($method, $url, $options);
} catch (GuzzleException $e) {
throw new \RuntimeException('HTTPリクエストに失敗しました: ' . $e->getMessage(), 0, $e);
}
}
}
Guzzleのオプション「on_headers」でsleep処理を行えばタイムアウトを再現できます。



呼び出し先でタイムアウトを発生させられない場合などに便利です。
まとめ
今回は、LaravelのGuzzleでタイムアウトを発生させる方法について解説しました。
以下が本記事のまとめになります。
- おすすめ本
Laravelの勉強なら「PHPフレームワーク Laravel入門 第2版



最後までお読みいただき、ありがとうございました!
- クソおすすめ本



海外のエンジニアがどういった思考で働いているかが理解できます。
海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。