class EasyHandle
Represents a cURL easy handle and the data it populates.
@internal
Hierarchy
- class \GuzzleHttp\Handler\EasyHandle
Expanded class hierarchy of EasyHandle
File
-
vendor/
guzzlehttp/ guzzle/ src/ Handler/ EasyHandle.php, line 16
Namespace
GuzzleHttp\HandlerView source
final class EasyHandle {
/**
* @var resource|\CurlHandle cURL resource
*/
public $handle;
/**
* @var StreamInterface Where data is being written
*/
public $sink;
/**
* @var array Received HTTP headers so far
*/
public $headers = [];
/**
* @var ResponseInterface|null Received response (if any)
*/
public $response;
/**
* @var RequestInterface Request being sent
*/
public $request;
/**
* @var array Request options
*/
public $options = [];
/**
* @var int cURL error number (if any)
*/
public $errno = 0;
/**
* @var \Throwable|null Exception during on_headers (if any)
*/
public $onHeadersException;
/**
* @var \Exception|null Exception during createResponse (if any)
*/
public $createResponseException;
/**
* Attach a response to the easy handle based on the received headers.
*
* @throws \RuntimeException if no headers have been received or the first
* header line is invalid.
*/
public function createResponse() : void {
[
$ver,
$status,
$reason,
$headers,
] = HeaderProcessor::parseHeaders($this->headers);
$normalizedKeys = Utils::normalizeHeaderKeys($headers);
if (!empty($this->options['decode_content']) && isset($normalizedKeys['content-encoding'])) {
$headers['x-encoded-content-encoding'] = $headers[$normalizedKeys['content-encoding']];
unset($headers[$normalizedKeys['content-encoding']]);
if (isset($normalizedKeys['content-length'])) {
$headers['x-encoded-content-length'] = $headers[$normalizedKeys['content-length']];
$bodyLength = (int) $this->sink
->getSize();
if ($bodyLength) {
$headers[$normalizedKeys['content-length']] = $bodyLength;
}
else {
unset($headers[$normalizedKeys['content-length']]);
}
}
}
// Attach a response to the easy handle with the parsed headers.
$this->response = new Response($status, $headers, $this->sink, $ver, $reason);
}
/**
* @param string $name
*
* @return void
*
* @throws \BadMethodCallException
*/
public function __get($name) {
$msg = $name === 'handle' ? 'The EasyHandle has been released' : 'Invalid property: ' . $name;
throw new \BadMethodCallException($msg);
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
EasyHandle::$createResponseException | public | property | |
EasyHandle::$errno | public | property | |
EasyHandle::$handle | public | property | |
EasyHandle::$headers | public | property | |
EasyHandle::$onHeadersException | public | property | |
EasyHandle::$options | public | property | |
EasyHandle::$request | public | property | |
EasyHandle::$response | public | property | |
EasyHandle::$sink | public | property | |
EasyHandle::createResponse | public | function | Attach a response to the easy handle based on the received headers. |
EasyHandle::__get | public | function |