diff options
Diffstat (limited to 'vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php')
-rw-r--r-- | vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php | 45 |
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); + } +} |