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 |
@phpcs:ignore MediaWiki.Commenting.PropertyDocumentation.ObjectTypeHintVar 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 59 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 122 of file MultiHttpClient.php.
Wikimedia\Http\MultiHttpClient::__destruct | ( | ) |
Definition at line 879 of file MultiHttpClient.php.
|
protected |
array | &$req | HTTP request map @phpcs:ignore Generic.Files.LineLength |
array | $opts |
|
\Exception
Definition at line 388 of file MultiHttpClient.php.
References Wikimedia\Http\MultiHttpClient\$headers, $matches, $url, and Wikimedia\Http\MultiHttpClient\$userAgent.
|
protected |
array | $opts | @phpcs:ignore MediaWiki.Commenting.FunctionComment.ObjectTypeHintReturn |
\Exception
Definition at line 521 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 240 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 166 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 202 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 875 of file MultiHttpClient.php.
|
protected |
SSL certificates path.
Definition at line 68 of file MultiHttpClient.php.
|
protected |
@phpcs:ignore MediaWiki.Commenting.PropertyDocumentation.ObjectTypeHintVar curl_multi_init() handle, initialized in getCurlMulti()
Definition at line 66 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\getCurlMulti().
|
protected |
Definition at line 70 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\runMulti().
|
protected |
Definition at line 91 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\getCurlHandle().
|
protected |
Definition at line 84 of file MultiHttpClient.php.
|
protected |
Definition at line 86 of file MultiHttpClient.php.
|
protected |
Definition at line 90 of file MultiHttpClient.php.
|
protected |
Definition at line 80 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\getCurlMulti().
|
protected |
Definition at line 72 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\runMulti().
|
protected |
Definition at line 76 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\runMulti().
|
protected |
Definition at line 82 of file MultiHttpClient.php.
|
protected |
Definition at line 74 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\runMulti().
|
protected |
Definition at line 78 of file MultiHttpClient.php.
|
protected |
Definition at line 88 of file MultiHttpClient.php.
Referenced by Wikimedia\Http\MultiHttpClient\getCurlHandle().