PageResponse
extends Response
in package
Abstract base class for paginated collection responses from Horizon API
Horizon returns collections in pages for efficient data transfer. This base class provides common pagination functionality including navigation links, page state checking, and methods to fetch next/previous pages. All paginated collection responses extend this class.
Key features:
- Navigation links for next, previous, and self pages
- Helper methods to check if next/previous pages exist
- Abstract methods to fetch next/previous pages (implemented by subclasses)
- Support for both forward and backward pagination
Tags
Table of Contents
Properties
- $httpClient : Client|null
- $rateLimitLimit : int|null
- $rateLimitRemaining : int|null
- $rateLimitReset : int|null
Methods
- getHttpClient() : Client|null
- Gets the HTTP client used for pagination requests
- getLinks() : PagingLinksResponse
- Gets the pagination links for navigating between pages
- getNextPage() : PageResponse|null
- Fetches the next page of results
- getPreviousPage() : PageResponse|null
- Fetches the previous page of results
- getRateLimitLimit() : int|null
- Returns X-RateLimit-Limit header from the response.
- getRateLimitRemaining() : int|null
- Returns X-RateLimit-Remaining header from the response.
- getRateLimitReset() : int|null
- Returns X-RateLimit-Reset header from the response. Seconds until a new window starts.
- hasNextPage() : bool
- Checks if a next page exists
- hasPrevPage() : bool
- Checks if a previous page exists
- setHeaders() : void
- Extracts and sets rate limiting information from HTTP response headers
- setHttpClient() : void
- Sets the HTTP client for making follow-up requests
- executeRequest() : Response|null
- getNextPageUrl() : string|null
- getPrevPageUrl() : string|null
- loadFromJson() : void
- Loads response data from a JSON array
Properties
$httpClient
protected
Client|null
$httpClient
= null
$rateLimitLimit
protected
int|null
$rateLimitLimit
= null
$rateLimitRemaining
protected
int|null
$rateLimitRemaining
= null
$rateLimitReset
protected
int|null
$rateLimitReset
= null
Methods
getHttpClient()
Gets the HTTP client used for pagination requests
public
getHttpClient() : Client|null
Return values
Client|null —The HTTP client instance, or null if not set
getLinks()
Gets the pagination links for navigating between pages
public
getLinks() : PagingLinksResponse
Return values
PagingLinksResponse —The navigation links (next, prev, self)
getNextPage()
Fetches the next page of results
public
abstract getNextPage() : PageResponse|null
Return values
PageResponse|null —The next page or null if no next page exists
getPreviousPage()
Fetches the previous page of results
public
abstract getPreviousPage() : PageResponse|null
Return values
PageResponse|null —The previous page or null if no previous page exists
getRateLimitLimit()
Returns X-RateLimit-Limit header from the response.
public
getRateLimitLimit() : int|null
This number represents the he maximum number of requests that the current client can make in one hour.
Tags
Return values
int|nullgetRateLimitRemaining()
Returns X-RateLimit-Remaining header from the response.
public
getRateLimitRemaining() : int|null
The number of remaining requests for the current window.
Tags
Return values
int|nullgetRateLimitReset()
Returns X-RateLimit-Reset header from the response. Seconds until a new window starts.
public
getRateLimitReset() : int|null
Tags
Return values
int|nullhasNextPage()
Checks if a next page exists
public
hasNextPage() : bool
Return values
bool —True if there is a next page available
hasPrevPage()
Checks if a previous page exists
public
hasPrevPage() : bool
Return values
bool —True if there is a previous page available
setHeaders()
Extracts and sets rate limiting information from HTTP response headers
public
setHeaders(array<string|int, mixed> $headers) : void
This method processes the X-Ratelimit-* headers from the HTTP response and stores them for client access.
Parameters
- $headers : array<string|int, mixed>
-
Associative array of HTTP headers from the response
setHttpClient()
Sets the HTTP client for making follow-up requests
public
setHttpClient([Client|null $httpClient = null ]) : void
Paginated responses contain links to next/previous pages. This HTTP client is used when following those links to fetch additional pages.
Parameters
- $httpClient : Client|null = null
-
The Guzzle HTTP client to use for pagination
executeRequest()
protected
executeRequest(string $requestType[, string|null $url = null ]) : Response|null
Parameters
- $requestType : string
- $url : string|null = null
Tags
Return values
Response|nullgetNextPageUrl()
protected
getNextPageUrl() : string|null
Return values
string|nullgetPrevPageUrl()
protected
getPrevPageUrl() : string|null
Return values
string|nullloadFromJson()
Loads response data from a JSON array
protected
loadFromJson(array<string|int, mixed> $json) : void
This method is used internally to populate response objects from parsed JSON. Subclasses override this to extract their specific data fields.
Parameters
- $json : array<string|int, mixed>
-
Associative array of parsed JSON data