PluginProbe
Media Cloud Sync / 1.3.11
Media Cloud Sync v1.3.11
1.4.0 1.3.12 1.3.11 1.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.2.0 1.2.10 1.2.11 1.2.12 1.2.13 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 All 34 releases
media-cloud-sync / includes / sdk / s3 / GuzzleHttp / Handler / CurlHandler.php

CurlHandler.php in Media Cloud Sync 1.3.11, at includes/sdk/s3/GuzzleHttp/Handler/CurlHandler.php

44 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Dudlewebs\WPMCS\s3\GuzzleHttp\Handler;
4
5 use Dudlewebs\WPMCS\s3\GuzzleHttp\Promise\PromiseInterface;
6 use Dudlewebs\WPMCS\s3\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 CurlFactory(3);
32 }
33 public function __invoke(RequestInterface $request, array $options) : 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 CurlFactory::finish($this, $easy, $this->factory);
42 }
43 }
44