NOTE: For Version 3 of the AWS SDK for PHP, please see the V3 User Guide and V3 API Reference.

# Class CurlHandle

Immutable wrapper for a cURL handle

Namespace: Guzzle\Http\Curl
Located at Guzzle/Http/Curl/CurlHandle.php

## Methods summary

- `public static` `factory ( Guzzle\Http\Message\RequestInterface $request )`

  Factory method to create a new curl handle based on an HTTP request.

- `public` `__construct ( resource $handle, Collection|array $options )`

  Construct a new CurlHandle object that wraps a cURL handle

- `public` `__destruct ( )`

  Destructor

- `public` `close ( )`

  Close the curl handle

- `public` `isAvailable ( )`

  Check if the handle is available and still OK

- `public` `getError ( )`

  Get the last error that occurred on the cURL handle

- `public` `getErrorNo ( )`

  Get the last error number that occurred on the cURL handle

- `public` `setErrorNo ( int $error )`

  Set the curl error number

- `public` `getInfo ( int $option = null )`

  Get cURL curl_getinfo data

- `public` `getStderr ( bool $asResource = false )`

  Get the stderr output

- `public` `getUrl ( )`

  Get the URL that this handle is connecting to

- `public` `getHandle ( )`

  Get the wrapped curl handle

- `public` `getOptions ( )`

  Get the cURL setopt options of the handle. Changing values in the return object will have no effect on the curl handle after it is created.

- `public` `updateRequestFromTransfer ( Guzzle\Http\Message\RequestInterface $request )`

  Update a request based on the log messages of the CurlHandle

- `public static` `parseCurlConfig ( array|Collection $config )`

  Parse the config and replace curl.* configurators into the constant based values so it can be used elsewhere

## Methods detail

# `public static `Guzzle\Http\Curl\CurlHandle``
`factory( `Guzzle\Http\Message\RequestInterface` $request )`

Factory method to create a new curl handle based on an HTTP request.

There are some helpful options you can set to enable specific behavior:

- debug: Set to true to enable cURL debug functionality to track the actual headers sent over the wire.
- progress: Set to true to enable progress function callbacks.

#### Parameters

$request
  ``Guzzle\Http\Message\RequestInterface``
  $request Request

#### Returns

``Guzzle\Http\Curl\CurlHandle``

#### Throws

``Guzzle\Common\Exception\RuntimeException``
# `public`
`__construct( resource $handle, `Guzzle\Common\Collection`|array $options )`

Construct a new CurlHandle object that wraps a cURL handle

#### Parameters

$handle
  `resource`
  $handle Configured cURL handle resource
$options
  ``Guzzle\Common\Collection`|array`
  $options Curl options to use with the handle

#### Throws

``Guzzle\Common\Exception\InvalidArgumentException``
# `public`
`__destruct( )`

Destructor

# `public`
`close( )`

Close the curl handle

# `public boolean`
`isAvailable( )`

Check if the handle is available and still OK

#### Returns

`boolean`
# `public string`
`getError( )`

Get the last error that occurred on the cURL handle

#### Returns

`string`
# `public integer`
`getErrorNo( )`

Get the last error number that occurred on the cURL handle

#### Returns

`integer`
# `public `Guzzle\Http\Curl\CurlHandle``
`setErrorNo( integer $error )`

Set the curl error number

#### Parameters

$error
  `integer`
  $error Error number to set

#### Returns

``Guzzle\Http\Curl\CurlHandle``
# `public array|mixed`
`getInfo( integer $option = null )`

Get cURL curl_getinfo data

#### Parameters

$option
  `integer`
  $option Option to retrieve. Pass null to retrieve all data as an array.

#### Returns

`array|mixed`
# `public string|resource|null`
`getStderr( boolean $asResource = false )`

Get the stderr output

#### Parameters

$asResource
  `boolean`
  $asResource Set to TRUE to get an fopen resource

#### Returns

`string|resource|null`
# `public `Guzzle\Http\Url``
`getUrl( )`

Get the URL that this handle is connecting to

#### Returns

``Guzzle\Http\Url``
# `public resource|null`
`getHandle( )`

Get the wrapped curl handle

#### Returns

`resource|null`
Returns the cURL handle or null if it was closed
# `public `Guzzle\Common\Collection``
`getOptions( )`

Get the cURL setopt options of the handle. Changing values in the return object will have no effect on the curl handle after it is created.

#### Returns

``Guzzle\Common\Collection``
# `public`
`updateRequestFromTransfer( `Guzzle\Http\Message\RequestInterface` $request )`

Update a request based on the log messages of the CurlHandle

#### Parameters

$request
  ``Guzzle\Http\Message\RequestInterface``
  $request Request to update

# `public static array`
`parseCurlConfig( array|`Guzzle\Common\Collection` $config )`

Parse the config and replace curl.* configurators into the constant based values so it can be used elsewhere

#### Parameters

$config
  `array|`Guzzle\Common\Collection``
  $config The configuration we want to parse

#### Returns

`array`

### Magic methods summary

## Constants summary

`string` | `BODY_AS_STRING` | `'body_as_string'` | #
`string` | `PROGRESS` | `'progress'` | #
`string` | `DEBUG` | `'debug'` | #

## Properties summary

`protected `Guzzle\Common\Collection`` | $options | # Curl options
`protected resource` | $handle | # Curl resource handle
`protected integer` | $errorNo | # CURLE_* error