'options' => $options ]; return \GuzzleHttp\Promise\rejection_for($reason); } ); }; }; } /** * Middleware that invokes a callback before and after sending a request. * * The provided listener cannot modify or alter the response. It simply * "taps" into the chain to be notified before returning the promise. The * before listener accepts a request and options array, and the after * listener accepts a request, options array, and response promise. * * @param callable $before Function to invoke before forwarding the request. * @param callable $after Function invoked after forwarding. * * @return callable Returns a function that accepts the next handler. */ public static function tap(callable $before = null, callable $after = null) { return function (callable $handler) use ($before, $after) { return function ($request, array $options) use ($handler, $before, $after) { if ($before) { $before($request, $options); } $response = $handler($request, $options); if ($after) { $after($request, $options, $response); } return $response; }; }; } /** * Middleware that handles request redirects. * * @return callable Returns a function that accepts the next handler. */ public static function redirect() { return function (callable $handler) { return new RedirectMiddleware($handler); }; } /** * Middleware that retries requests based on the boolean result of * invoking the provided "decider" function. * * If no delay function is provided, a simple implementation of exponential * backoff will be utilized. * * @param callable $decider Function that accepts the number of retries, * a request, [response], and [exception] and * returns true if the request is to be retried. * @param callable $delay Function that accepts the number of retries and * returns the number of milliseconds to delay. * * @return callable Returns a function that accepts the next handler. */ public static function retry(callable $decider, callable $delay = null) { return function (callable $handler) use ($decider, $delay) { return new RetryMiddleware($decider, $handler, $delay); }; } /** * Middleware that logs requests, responses, and errors using a message * formatter. * * @param LoggerInterface $logger Logs messages. * @param MessageFormatter $formatter Formatter used to create message strings. * @param string $logLevel Level at which to log requests. * * @return callable Returns a function that accepts the next handler. */ public static function log(LoggerInterface $logger, MessageFormatter $formatter, $logLevel = 'info' /* \Psr\Log\LogLevel::INFO */) { return function (callable $handler) use ($logger, $formatter, $logLevel) { return function ($request, array $options) use ($handler, $logger, $formatter, $logLevel) { return $handler($request, $options)->then( function ($response) use ($logger, $request, $formatter, $logLevel) { $message = $formatter->format($request, $response); $logger->log($logLevel, $message); return $response; }, function ($reason) use ($logger, $request, $formatter) { $response = $reason instanceof RequestException ? $reason->getResponse() : null; $message = $formatter->format($request, $response, $reason); $logger->notice($message); return \GuzzleHttp\Promise\rejection_for($reason); } ); }; }; } /** * This middleware adds a default content-type if possible, a default * content-length or transfer-encoding header, and the expect header. * * @return callable */ public static function prepareBody() { return function (callable $handler) { return new PrepareBodyMiddleware($handler); }; } /** * Middleware that applies a map function to the request before passing to * the next handler. * * @param callable $fn Function that accepts a RequestInterface and returns * a RequestInterface. * @return callable */ public static function mapRequest(callable $fn) { return function (callable $handler) use ($fn) { return function ($request, array $options) use ($handler, $fn) { return $handler($fn($request), $options); }; }; } /** * Middleware that applies a map function to the resolved promise's * response. * * @param callable $fn Function that accepts a ResponseInterface and * returns a ResponseInterface. * @return callable */ public static function mapResponse(callable $fn) { return function (callable $handler) use ($fn) { return function ($request, array $options) use ($handler, $fn) { return $handler($request, $options)->then($fn); }; }; } } Fatal error: Uncaught Error: Class 'GuzzleHttp\Middleware' not found in /var/www/u116785/data/www/kinolis.com/engine/inc/CCDN/vendor/guzzlehttp/guzzle/src/HandlerStack.php:43 Stack trace: #0 /var/www/u116785/data/www/kinolis.com/engine/inc/CCDN/vendor/guzzlehttp/guzzle/src/Client.php(65): GuzzleHttp\HandlerStack::create() #1 /var/www/u116785/data/www/kinolis.com/engine/inc/CCDN/Helpers/Api/ApiHandler.php(103): GuzzleHttp\Client->__construct(Array) #2 /var/www/u116785/data/www/kinolis.com/engine/inc/CCDN/Helpers/Api/ApiHandler.php(65): CCDN\Helpers\Api\ApiHandler->_createClient(20, false) #3 /var/www/u116785/data/www/kinolis.com/engine/modules/ccdn-calendar-fullstory.php(39): CCDN\Helpers\Api\ApiHandler->__construct() #4 /var/www/u116785/data/www/kinolis.com/engine/inc/CCDN/Helpers/Modules/CCDNModule.php(27): dle_template::{closure}('MODULE_CALENDAR...', Object(CCDN\Helpers\Caching\Cache)) #5 /var/www/u116785/data/www/kinolis.com/engine/modules/ccdn-calendar-fullstory.php(191): CCDN\Helpers\Modules\CCDNModule::run('MODULE_ in /var/www/u116785/data/www/kinolis.com/engine/inc/CCDN/vendor/guzzlehttp/guzzle/src/HandlerStack.php on line 43