Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/wordpres.../vendor_p.../guzzleht.../guzzle/src
File: RetryMiddleware.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace YoastSEO_Vendor\GuzzleHttp;
[2] Fix | Delete
[3] Fix | Delete
use YoastSEO_Vendor\GuzzleHttp\Promise as P;
[4] Fix | Delete
use YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface;
[5] Fix | Delete
use YoastSEO_Vendor\Psr\Http\Message\RequestInterface;
[6] Fix | Delete
use YoastSEO_Vendor\Psr\Http\Message\ResponseInterface;
[7] Fix | Delete
/**
[8] Fix | Delete
* Middleware that retries requests based on the boolean result of
[9] Fix | Delete
* invoking the provided "decider" function.
[10] Fix | Delete
*
[11] Fix | Delete
* @final
[12] Fix | Delete
*/
[13] Fix | Delete
class RetryMiddleware
[14] Fix | Delete
{
[15] Fix | Delete
/**
[16] Fix | Delete
* @var callable(RequestInterface, array): PromiseInterface
[17] Fix | Delete
*/
[18] Fix | Delete
private $nextHandler;
[19] Fix | Delete
/**
[20] Fix | Delete
* @var callable
[21] Fix | Delete
*/
[22] Fix | Delete
private $decider;
[23] Fix | Delete
/**
[24] Fix | Delete
* @var callable(int)
[25] Fix | Delete
*/
[26] Fix | Delete
private $delay;
[27] Fix | Delete
/**
[28] Fix | Delete
* @param callable $decider Function that accepts the number of retries,
[29] Fix | Delete
* a request, [response], and [exception] and
[30] Fix | Delete
* returns true if the request is to be
[31] Fix | Delete
* retried.
[32] Fix | Delete
* @param callable(RequestInterface, array): PromiseInterface $nextHandler Next handler to invoke.
[33] Fix | Delete
* @param (callable(int): int)|null $delay Function that accepts the number of retries
[34] Fix | Delete
* and returns the number of
[35] Fix | Delete
* milliseconds to delay.
[36] Fix | Delete
*/
[37] Fix | Delete
public function __construct(callable $decider, callable $nextHandler, callable $delay = null)
[38] Fix | Delete
{
[39] Fix | Delete
$this->decider = $decider;
[40] Fix | Delete
$this->nextHandler = $nextHandler;
[41] Fix | Delete
$this->delay = $delay ?: __CLASS__ . '::exponentialDelay';
[42] Fix | Delete
}
[43] Fix | Delete
/**
[44] Fix | Delete
* Default exponential backoff delay function.
[45] Fix | Delete
*
[46] Fix | Delete
* @return int milliseconds.
[47] Fix | Delete
*/
[48] Fix | Delete
public static function exponentialDelay(int $retries) : int
[49] Fix | Delete
{
[50] Fix | Delete
return (int) 2 ** ($retries - 1) * 1000;
[51] Fix | Delete
}
[52] Fix | Delete
public function __invoke(\YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, array $options) : \YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface
[53] Fix | Delete
{
[54] Fix | Delete
if (!isset($options['retries'])) {
[55] Fix | Delete
$options['retries'] = 0;
[56] Fix | Delete
}
[57] Fix | Delete
$fn = $this->nextHandler;
[58] Fix | Delete
return $fn($request, $options)->then($this->onFulfilled($request, $options), $this->onRejected($request, $options));
[59] Fix | Delete
}
[60] Fix | Delete
/**
[61] Fix | Delete
* Execute fulfilled closure
[62] Fix | Delete
*/
[63] Fix | Delete
private function onFulfilled(\YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, array $options) : callable
[64] Fix | Delete
{
[65] Fix | Delete
return function ($value) use($request, $options) {
[66] Fix | Delete
if (!($this->decider)($options['retries'], $request, $value, null)) {
[67] Fix | Delete
return $value;
[68] Fix | Delete
}
[69] Fix | Delete
return $this->doRetry($request, $options, $value);
[70] Fix | Delete
};
[71] Fix | Delete
}
[72] Fix | Delete
/**
[73] Fix | Delete
* Execute rejected closure
[74] Fix | Delete
*/
[75] Fix | Delete
private function onRejected(\YoastSEO_Vendor\Psr\Http\Message\RequestInterface $req, array $options) : callable
[76] Fix | Delete
{
[77] Fix | Delete
return function ($reason) use($req, $options) {
[78] Fix | Delete
if (!($this->decider)($options['retries'], $req, null, $reason)) {
[79] Fix | Delete
return \YoastSEO_Vendor\GuzzleHttp\Promise\Create::rejectionFor($reason);
[80] Fix | Delete
}
[81] Fix | Delete
return $this->doRetry($req, $options);
[82] Fix | Delete
};
[83] Fix | Delete
}
[84] Fix | Delete
private function doRetry(\YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, array $options, \YoastSEO_Vendor\Psr\Http\Message\ResponseInterface $response = null) : \YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface
[85] Fix | Delete
{
[86] Fix | Delete
$options['delay'] = ($this->delay)(++$options['retries'], $response, $request);
[87] Fix | Delete
return $this($request, $options);
[88] Fix | Delete
}
[89] Fix | Delete
}
[90] Fix | Delete
[91] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function