ソース コードの読み方を学びます。その GitHub ページで「タイムアウト」を検索します。
プロパティとメソッドAbstractClientがあることが表示されます。timeoutsetTimeout()
abstract class AbstractClient implements ClientInterface {
// [...]
protected $timeout = 5;
// [...]
public function setTimeout($timeout) {
$this->timeout = $timeout;
}
// [...]
}
ここで、「どうすればそのオブジェクトに到達できるか?」と考えているはずです。クラスを使用しているのでBrowser、そこから始めるべきです。
Browserのコンストラクターを見ると、プロパティが を実装するクラスに設定されていることがわかりclientますClientInterface。
public function __construct(ClientInterface $client = null, FactoryInterface $factory = null) {
$this->client = $client ?: new FileGetContents();
$this->factory = $factory ?: new Factory();
}
コンストラクターに引数を渡さないため、クライアントを のインスタンスに設定しFileGetContents、これは を拡張AbstractStreamし、次に拡張AbstractClientします (ファイルを調べて自分で確認してください)。
のコンストラクターで設定されたclientプロパティはBrowserプライベートに設定されているため、それにアクセスする方法を見つける必要があります。クラスを調べると、次のことがわかります。
public function getClient() { /* ... */ }
わかった。を呼び出すことでクライアントを取得できることがわかりましたgetClient()。setTimeout()また、クライアントには次のメソッドがあることもわかっています。
$buzz->getClient()->setTimeout(40);
ほら。