Class PaginatedIterator
Class ResourceIterator is tasked with iterating over resource collections - many of which are paginated. Based on a base URL, the iterator will append elements based on further requests to the API. Each time this happens, query parameters (marker) are updated based on the current value.
- OpenCloud\Common\ArrayAccess implements ArrayAccess
-
OpenCloud\Common\Collection\ArrayCollection implements Countable
-
OpenCloud\Common\Collection\ResourceIterator implements Iterator
-
OpenCloud\Common\Collection\PaginatedIterator implements Iterator
Direct known subclasses
OpenCloud\CloudMonitoring\Collection\MonitoringIterator, OpenCloud\DNS\Collection\DnsIterator, OpenCloud\LoadBalancer\Collection\LoadBalancerIterator, OpenCloud\Queues\Collection\MessageIteratorPackage: OpenCloud\Common\Collection
Since: 1.8.0
Located at OpenCloud/Common/Collection/PaginatedIterator.php
public static
static
|
|
public
mixed
|
|
public
mixed
|
|
public
integer|mixed
|
|
public
|
|
public
|
#
updateMarkerToCurrent( )
Update the current marker based on the current element. The marker will be based on a particular property of this current element, so you must retrieve it first. |
protected
|
|
public
|
|
public
boolean
|
|
protected
|
|
public
mixed
|
|
public
mixed
|
#
appendNewCollection( )
Retrieve a new page of elements from the API (based on a new request), parse its response, and append them to the collection. |
public
boolean
|
#
extractNextLink( mixed $body )
Based on the response body, extract the explicitly set "link" value if provided. |
public
Guzzle\Http\Url|string
|
|
public
array
|
#
parseResponseBody( mixed $body )
Based on the response from the API, parse it for the data we need (i.e. an meaningful array of elements). |
public
|
__construct(),
append(),
count(),
setElements(),
valueExists()
|
offsetExists(),
offsetGet(),
offsetSet(),
offsetUnset()
|
string |
MARKER
|
# 'marker' |
string |
LIMIT
|
# 'limit' |
protected
string
|
$currentMarker
Used for requests which append elements. |
|
protected
Guzzle\Http\Url
|
$nextUrl
The next URL for pagination |
|
protected
array
|
$defaults
Fallback defaults if options are not explicitly set or provided. |
# array(
// Collection limits
'limit.total' => 10000,
'limit.page' => 100,
// The "links" element key in response
'key.links' => 'links',
// JSON structure
'key.collection' => null,
'key.collectionElement' => null,
// The property used as the marker
'key.marker' => 'name',
// Options for "next page" request
'request.method' => 'GET',
'request.headers' => array(),
'request.body' => null,
'request.curlOptions' => array()
) |
protected
array
|
$required
Required options |
# array('resourceClass', 'baseUrl') |
$options,
$position,
$resourceParent
|
$elements
|