Luminova Framework

PHP Luminova: cURL Client: Handling Outgoing Network Request Responses

Last updated: 2024-12-07 05:04:36

The HTTP response object allows easy capture handling of network request responses sent through the cURL client. It provides useful methods to access the response information.

The Response object in Luminova is designed to capture and manage HTTP responses from network requests made using the cURL client. It offers a comprehensive set of methods to access essential information such as the status code, headers, body, and other relevant details related to the received response.


Class Definition

  • Class namespace: \Luminova\Http\Message\Response
  • This class implements: \Stringable

Methods

constructor

Initializes a new network request response object.

public __construct(
    private int $statusCode = 200, 
    private array<string,array<int,mixed>> $headers = [], 
    private string $contents = '', 
    private array<string,mixed> $info = [], 
    private string $reasonPhrase = 'OK', 
    private string $protocolVersion = '1.1', 
    private ?Luminova\Storages\Stream $stream = null,
    public ?Luminova\Interface\CookieJarInterface $cookie = null
): mixed

Parameters:

ParameterTypeDescription
$statusCodeintThe HTTP status code of the response (default: 200).
$headersarray<string,array<int,mixed>>An array of response headers.
$contentsstringThe extracted content from the response.
$infoarray<string,mixed>Additional response information from cURL (optional).
$reasonPhrasestringReason phrase associated with the status code (default: OK).
$protocolVersionstringThe HTTP protocol version (default: '1.1').
$streamLuminova\Storages\Stream|nullOptional stream object as response.
$cookieLuminova\Interface\CookieJarInterface|nullOptionally HTTP cookie jar object.

toString

Convert the HTTP response to a formatted string.

This method generates the complete HTTP response string, including the status line, headers, and body content. It checks for the 'Content-Length' header and adds it if not present.

public toString(): string

Return Value:

string - Return the complete HTTP response as a string.


getProtocolVersion

Retrieves the HTTP protocol version (e.g., 1.0, 1.1). Returns an empty string if not set.

public getProtocolVersion(): string

Return Value:

string - The HTTP protocol version.


getReasonPhrase

Retrieves the reason phrase associated with the HTTP status code (e.g., OK, Internal Server Error).

public getReasonPhrase(): string

Return Value:

string - The reason phrase.


getStatusCode

Retrieves the HTTP status code of the response.

public getStatusCode(): int

Return Value:

int - The HTTP status code.


getFileTime

Retrieves the file modified time for the request.

public getFileTime(): int

Return Value:

int - Returns the file modified time if available; otherwise, returns -1.


getHeaders

Retrieves all response headers.

public getHeaders(): array<string,array>

Return Value:

array - An associative array of response headers.


getHeader

Retrieves a specific header value by its key.

public getHeader(string $name): array<int,mixed>

Parameters:

ParameterTypeDescription
$namestringThe header key to retrieve.

Return Value:

array - An array of header values.


getHeadersString

Convert an associative array of headers into a formatted string.This method converts the response headers to a string representation suitable for HTTP responses, where each header is formatted as key: value\r\n and separated by CRLF Carriage Return (ASCII 13, \r ) Line Feed (ASCII 10, \n).

public getHeadersString(): string

Return Value:

string - Return a formatted string containing all headers, followed by an additional CRLF to signal the end of the headers section.


getHeaderLine

Retrieves a comma-separated string of values for a specific header.

public getHeaderLine(string $header): string

Parameters:

ParameterTypeDescription
$headerstringThe header key name to retrieve.

Return Value:

string - A string of concatenated values for the given header.


hasHeader

Checks if a specific header exists in the response.

public hasHeader(string $name): bool

Parameters:

ParameterTypeDescription
$namestringThe header name to check.

Return Value:

bool - Returns true if the header exists, false otherwise.


getBody

Retrieves the response body as a stream. This method opens a temporary stream, writes the response contents if available (and if not already a stream), and then rewinds the stream before returning it.

public getBody(): \Luminova\Storages\Stream

Return Value:

\Luminova\Storages\Stream - The response body as a stream object.

Throws:

See Also:

For more information on stream management, refer to the Stream Documentation here.


getContents

Retrieves the extracted response contents as a string. Use this only for non-stream request responses.

public getContents(): string

Return Value:

string - The processed response contents.


getInfo

Retrieves additional information about the response.

public getInfo(): array<string, mixed>

Return Value:

array - An associative array of response metadata.


withHeader

Returns a new instance with the specified header value replacing the existing one.

public withHeader(string $name, string|string[] $value): \Luminova\Http\Message\Response

Parameters:

ParameterTypeDescription
$namestringCase-insensitive header field name.
$valuestring|string[]Header value(s).

Return Value:

Response - A new response object with the updated header.

Throws:


withoutHeader

Returns a new instance without the specified header.

public withoutHeader(string $name): \Luminova\Http\Message\Response

Parameters:

ParameterTypeDescription
$namestringCase-insensitive header field name to remove.

Return Value:

Response - A new response object without the specified header.


withStatus

Returns a new instance with the specified status code and optional reason phrase.

public withStatus(int $code, string $reasonPhrase = ''): \Luminova\Http\Message\Response

Parameters:

ParameterTypeDescription
$codeintThe 3-digit HTTP status code (e.g., 1xx to 5xx).
$reasonPhrasestringOptional reason phrase.

Return Value:

Response - A new response object with the specified status.

Throws:


withProtocolVersion

Returns a new instance with the specified HTTP protocol version.

public withProtocolVersion(string $version): \Luminova\Http\Message\Response

Parameters:

ParameterTypeDescription
$versionstringHTTP protocol version (e.g., 1.1, 1.0).

Return Value:

Response - A new response object with the specified protocol version.