|
MediaWiki master
|
Class to handle multiple HTTP requests. More...
Inherits LoggerAwareInterface.

Public Member Functions | |
| __construct (array $options) | |
| Since 1.35, callers should use HttpRequestFactory::createMultiClient() to get a client object with appropriately configured timeouts instead of constructing a MultiHttpClient directly. | |
| __destruct () | |
| run (array $req, array $opts=[], string $caller=__METHOD__) | |
| Execute an HTTP(S) request. | |
| runMulti (array $reqs, array $opts=[], string $caller=__METHOD__) | |
| Execute a set of HTTP(S) requests. | |
| setLogger (LoggerInterface $logger) | |
| Register a logger. | |
Protected Member Functions | |
| getCurlHandle (array &$req, array $opts) | |
| getCurlMulti (array $opts) | |
| isCurlEnabled () | |
| Determines if the curl extension is available. | |
Protected Attributes | |
| string null | $caBundlePath |
| SSL certificates path. | |
| resource object null | $cmh = null |
| curl_multi_init() handle, initialized in getCurlMulti() | |
| float | $connTimeout = 10 |
| array | $headers = [] |
| string false | $localProxy = false |
| string[] | $localVirtualHosts = [] |
| LoggerInterface | $logger |
| int | $maxConnsPerHost = 50 |
| float | $maxConnTimeout = INF |
| float | $maxReqTimeout = INF |
| string null | $proxy |
| float | $reqTimeout = 30 |
| bool | $usePipelining = false |
| string | $userAgent = 'wikimedia/multi-http-client v1.1' |
Class to handle multiple HTTP requests.
If curl is available, requests will be made concurrently. Otherwise, they will be made serially.
HTTP request maps are arrays that use the following format:
Since 1.35, callers should use HttpRequestFactory::createMultiClient() to get a client object with appropriately configured timeouts.
Definition at line 45 of file MultiHttpClient.php.
| Wikimedia\Http\MultiHttpClient::__construct | ( | array | $options | ) |
Since 1.35, callers should use HttpRequestFactory::createMultiClient() to get a client object with appropriately configured timeouts instead of constructing a MultiHttpClient directly.
| array | $options |
|
\Exception
Definition at line 108 of file MultiHttpClient.php.
| Wikimedia\Http\MultiHttpClient::__destruct | ( | ) |
Definition at line 865 of file MultiHttpClient.php.
|
protected |
| array | &$req | HTTP request map |
| array | $opts |
|
\Exception
Definition at line 374 of file MultiHttpClient.php.
References Wikimedia\Http\MultiHttpClient\$headers, $matches, $url, and Wikimedia\Http\MultiHttpClient\$userAgent.
|
protected |
| array | $opts |
\Exception
Definition at line 507 of file MultiHttpClient.php.
References Wikimedia\Http\MultiHttpClient\$cmh, and Wikimedia\Http\MultiHttpClient\$maxConnsPerHost.
|
protected |
Determines if the curl extension is available.
Definition at line 226 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\runMulti().
| Wikimedia\Http\MultiHttpClient::run | ( | array | $req, |
| array | $opts = [], | ||
| string | $caller = __METHOD__ ) |
Execute an HTTP(S) request.
This method returns a response map of:
| array | $req | HTTP request array |
| array | $opts |
| string | $caller | The method making this request, for attribution in logs |
Definition at line 152 of file MultiHttpClient.php.
References Wikimedia\Http\MultiHttpClient\runMulti().
| Wikimedia\Http\MultiHttpClient::runMulti | ( | array | $reqs, |
| array | $opts = [], | ||
| string | $caller = __METHOD__ ) |
Execute a set of HTTP(S) requests.
If curl is available, requests will be made concurrently. Otherwise, they will be made serially.
The maps are returned by this method with the 'response' field set to a map of:
| array[] | $reqs | Map of HTTP request arrays |
| array | $opts | Options
|
| string | $caller | The method making these requests, for attribution in logs |
\Exception
Definition at line 188 of file MultiHttpClient.php.
References Wikimedia\Http\MultiHttpClient\$connTimeout, Wikimedia\Http\MultiHttpClient\$maxConnTimeout, Wikimedia\Http\MultiHttpClient\$maxReqTimeout, Wikimedia\Http\MultiHttpClient\$reqTimeout, and Wikimedia\Http\MultiHttpClient\isCurlEnabled().
Referenced by Wikimedia\Http\MultiHttpClient\run().
| Wikimedia\Http\MultiHttpClient::setLogger | ( | LoggerInterface | $logger | ) |
Register a logger.
Definition at line 861 of file MultiHttpClient.php.
|
protected |
SSL certificates path.
Definition at line 54 of file MultiHttpClient.php.
|
protected |
curl_multi_init() handle, initialized in getCurlMulti()
Definition at line 52 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\getCurlMulti().
|
protected |
Definition at line 56 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\runMulti().
|
protected |
Definition at line 77 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\getCurlHandle().
|
protected |
Definition at line 70 of file MultiHttpClient.php.
|
protected |
Definition at line 72 of file MultiHttpClient.php.
|
protected |
Definition at line 76 of file MultiHttpClient.php.
|
protected |
Definition at line 66 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\getCurlMulti().
|
protected |
Definition at line 58 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\runMulti().
|
protected |
Definition at line 62 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\runMulti().
|
protected |
Definition at line 68 of file MultiHttpClient.php.
|
protected |
Definition at line 60 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\runMulti().
|
protected |
Definition at line 64 of file MultiHttpClient.php.
|
protected |
Definition at line 74 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\getCurlHandle().