summaryrefslogtreecommitdiffstats
path: root/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php')
-rw-r--r--vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php45
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php b/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php
new file mode 100644
index 0000000..43577da
--- /dev/null
+++ b/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php
@@ -0,0 +1,45 @@
+<?php
+namespace GuzzleHttp\Handler;
+
+use GuzzleHttp\Psr7;
+use Psr\Http\Message\RequestInterface;
+
+/**
+ * HTTP handler that uses cURL easy handles as a transport layer.
+ *
+ * When using the CurlHandler, custom curl options can be specified as an
+ * associative array of curl option constants mapping to values in the
+ * **curl** key of the "client" key of the request.
+ */
+class CurlHandler
+{
+ /** @var CurlFactoryInterface */
+ private $factory;
+
+ /**
+ * Accepts an associative array of options:
+ *
+ * - factory: Optional curl factory used to create cURL handles.
+ *
+ * @param array $options Array of options to use with the handler
+ */
+ public function __construct(array $options = [])
+ {
+ $this->factory = isset($options['handle_factory'])
+ ? $options['handle_factory']
+ : new CurlFactory(3);
+ }
+
+ public function __invoke(RequestInterface $request, array $options)
+ {
+ if (isset($options['delay'])) {
+ usleep($options['delay'] * 1000);
+ }
+
+ $easy = $this->factory->create($request, $options);
+ curl_exec($easy->handle);
+ $easy->errno = curl_errno($easy->handle);
+
+ return CurlFactory::finish($this, $easy, $this->factory);
+ }
+}