Guest User

Untitled

a guest
Jul 21st, 2025
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.51 KB | None | 0 0
  1. <?php
  2.  
  3. namespace YoastSEO_Vendor\GuzzleHttp\Handler;
  4.  
  5. use YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface;
  6. use YoastSEO_Vendor\Psr\Http\Message\RequestInterface;
  7. /**
  8.  * HTTP handler that uses cURL easy handles as a transport layer.
  9.  *
  10.  * When using the CurlHandler, custom curl options can be specified as an
  11.  * associative array of curl option constants mapping to values in the
  12.  * **curl** key of the "client" key of the request.
  13.  *
  14.  * @final
  15.  */
  16. class CurlHandler
  17. {
  18.     /**
  19.      * @var CurlFactoryInterface
  20.      */
  21.     private $factory;
  22.     /**
  23.      * Accepts an associative array of options:
  24.      *
  25.      * - handle_factory: Optional curl factory used to create cURL handles.
  26.      *
  27.      * @param array{handle_factory?: ?CurlFactoryInterface} $options Array of options to use with the handler
  28.      */
  29.     public function __construct(array $options = [])
  30.     {
  31.         $this->factory = $options['handle_factory'] ?? new \YoastSEO_Vendor\GuzzleHttp\Handler\CurlFactory(3);
  32.     }
  33.     public function __invoke(\YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, array $options) : \YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface
  34.     {
  35.         if (isset($options['delay'])) {
  36.             \usleep($options['delay'] * 1000);
  37.         }
  38.         $easy = $this->factory->create($request, $options);
  39.         \curl_exec($easy->handle);
  40.         $easy->errno = \curl_errno($easy->handle);
  41.         return \YoastSEO_Vendor\GuzzleHttp\Handler\CurlFactory::finish($this, $easy, $this->factory);
  42.     }
  43. }
  44.  
Advertisement
Add Comment
Please, Sign In to add comment