FederationRequestBuilder
extends RequestBuilder
in package
Request builder for SEP-0002 federation queries.
This class builds and executes federation protocol requests to resolve Stellar addresses, account IDs, transaction IDs, or perform forward lookups.
Federation servers must enable CORS by setting the following HTTP header for all responses: Access-Control-Allow-Origin: *
Tags
Table of Contents
Constants
- HEADERS = ["X-Client-Name" => "stellar_php_sdk", "X-Client-Version" => \Soneso\StellarSDK\StellarSDK::VERSION_NR]
Properties
- $httpClient : Client
- $queryParameters : array<string|int, mixed>
- $segments : array<string|int, mixed>
Methods
- __construct() : mixed
- Constructor.
- buildUrl() : string
- Builds the complete federation query URL.
- cursor() : RequestBuilder
- Sets <code>cursor</code> parameter on the request.
- execute() : FederationResponse
- Builds and executes the federation request.
- executeRequest() : Response
- Executes an HTTP request to Horizon and returns a parsed response object
- forQueryParameters() : FederationRequestBuilder
- Adds custom query parameters for forward queries.
- forStringToLookUp() : FederationRequestBuilder
- Sets the string to look up in the federation query.
- forType() : FederationRequestBuilder
- Sets the federation query type.
- getAndStream() : void
- Streams Server-Sent Events from Horizon to a callback function
- limit() : RequestBuilder
- Sets <code>limit</code> parameter on the request.
- order() : RequestBuilder
- Sets <code>order</code> parameter on the request.
- request() : FederationResponse
- Executes a federation request to the specified URL.
- setSegments() : RequestBuilder
- Sets the URL path segments for this request
Constants
HEADERS
public
mixed
HEADERS
= ["X-Client-Name" => "stellar_php_sdk", "X-Client-Version" => \Soneso\StellarSDK\StellarSDK::VERSION_NR]
Properties
$httpClient
protected
Client
$httpClient
$queryParameters
protected
array<string|int, mixed>
$queryParameters
$segments
protected
array<string|int, mixed>
$segments
Methods
__construct()
Constructor.
public
__construct(Client $httpClient, string $serviceAddress) : mixed
Parameters
- $httpClient : Client
-
HTTP client for making requests.
- $serviceAddress : string
-
Base URL of the federation server.
buildUrl()
Builds the complete federation query URL.
public
buildUrl() : string
Return values
string —The constructed URL with query parameters.
cursor()
Sets <code>cursor</code> parameter on the request.
public
cursor(string $cursor) : RequestBuilder
A cursor is a value that points to a specific location in a collection of resources. The cursor attribute itself is an opaque value meaning that users should not try to parse it.
Parameters
- $cursor : string
Tags
Return values
RequestBuilderexecute()
Builds and executes the federation request.
public
execute() : FederationResponse
Tags
Return values
FederationResponse —The federation response.
executeRequest()
Executes an HTTP request to Horizon and returns a parsed response object
public
executeRequest(string $url, string $requestType[, string|null $requestMethod = "GET" ]) : Response
This method sends the HTTP request to the Horizon server, handles errors, and parses the JSON response into the appropriate response type.
Parameters
- $url : string
-
The complete request URL to fetch
- $requestType : string
-
The expected response type for parsing
- $requestMethod : string|null = "GET"
-
The HTTP method to use (default: "GET")
Tags
Return values
Response —The parsed response object of the specified type
forQueryParameters()
Adds custom query parameters for forward queries.
public
forQueryParameters(array<string|int, mixed> $queryParameters) : FederationRequestBuilder
Parameters
- $queryParameters : array<string|int, mixed>
-
Additional query parameters.
Return values
FederationRequestBuilder —This instance for method chaining.
forStringToLookUp()
Sets the string to look up in the federation query.
public
forStringToLookUp(string $stringToLookUp) : FederationRequestBuilder
Parameters
- $stringToLookUp : string
-
The address, account ID, or transaction ID to query.
Return values
FederationRequestBuilder —This instance for method chaining.
forType()
Sets the federation query type.
public
forType(string $type) : FederationRequestBuilder
Parameters
- $type : string
-
Query type ("name", "id", "txid", or "forward").
Return values
FederationRequestBuilder —This instance for method chaining.
getAndStream()
Streams Server-Sent Events from Horizon to a callback function
public
getAndStream(string $relativeUrl, callable $callback[, bool $retryOnServerException = true ]) : void
This method establishes a persistent connection to Horizon's streaming endpoints using Server-Sent Events (SSE). It processes each event and passes the parsed data to the provided callback function. The stream automatically reconnects on server exceptions if retryOnServerException is true.
Horizon streaming uses SSE to push real-time updates. The stream sends:
- "hello" message on connection
- "byebye" message on disconnection
- JSON data objects for actual events
Parameters
- $relativeUrl : string
-
The relative URL to stream from
- $callback : callable
-
Function to receive parsed event data
- $retryOnServerException : bool = true
-
If true, automatically retry on server errors (default: true)
Tags
Return values
void —This method runs indefinitely until interrupted
limit()
Sets <code>limit</code> parameter on the request.
public
limit(int $number) : RequestBuilder
It defines maximum number of records to return. For range and default values check documentation of the endpoint requested.
Parameters
- $number : int
-
Maximum number of records to return
Return values
RequestBuilderorder()
Sets <code>order</code> parameter on the request.
public
order([string $direction = "asc" ]) : RequestBuilder
Parameters
- $direction : string = "asc"
-
"asc" or "desc"
Return values
RequestBuilderrequest()
Executes a federation request to the specified URL.
public
request(string $url) : FederationResponse
The federation server may return a 3xx redirect status code with a Location header to redirect to the correct URL.
Parameters
- $url : string
-
The complete URL to query.
Tags
Return values
FederationResponse —The federation response.
setSegments()
Sets the URL path segments for this request
protected
setSegments(string ...$segments) : RequestBuilder
This method constructs the URL path by combining multiple segments. Can only be called once per request builder instance.
Parameters
- $segments : string
-
Variable number of URL path segments
Tags
Return values
RequestBuilder —This instance for method chaining