You are here

CurlHandler.php in Zircon Profile 8.0

Same filename and directory in other branches
  1. 8 vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php

Namespace

GuzzleHttp\Handler

File

vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php
View source
<?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);
  }

}

Classes

Namesort descending Description
CurlHandler HTTP handler that uses cURL easy handles as a transport layer.