CursorPaginator
abstract class CursorPaginator extends Paginator
Properties
| protected int | $pageNumber | The page number applied to the next request. |
from Paginator |
| protected int | $currentPage | The zero-based iterator position. |
from Paginator |
| protected int | $startPage | The first page number requested after rewind. |
from Paginator |
| protected int|null | $maxPages | The optional maximum number of pages to request. |
from Paginator |
| protected int|null | $perPageLimit | The optional result limit per page. |
from Paginator |
| protected null|Response<mixed> | $currentResponse | The current response. |
from Paginator |
| protected bool | $currentPageLoaded | Whether the current page has been fetched and mapped. |
from Paginator |
| protected TItem> | $currentPageItems | The items mapped from the final current response. |
from Paginator |
| protected int | $totalResults | The total number of mapped results processed. |
from Paginator |
| protected bool | $detectInfiniteLoop | Whether repeated response bodies should stop iteration. |
from Paginator |
| protected bool | $checksumIncludesContinuation | Whether page checksums include the provider's continuation, so a repeated checksum repeats an earlier request. |
|
| protected bool | $pooling | Whether the paginator is currently preparing pooled pages. |
from Paginator |
| protected array<int, string> | $lastFiveBodyChecksums | The latest response checksums, including continuation where available. |
from Paginator |
| protected string | $cursorName | The cursor query parameter. |
|
| protected string | $perPageName | The per-page limit query parameter. |
Methods
Create a lazy collection from page responses or response items.
Reject pooled cursor pagination because later cursors depend on earlier responses.
Set the number of results requested per page.
Compare page contents together with the provider's continuation cursor.
Yield independently addressable page requests after the first page.
Details
in
Paginator at line 179
void
next()
Move to the next page.
in
Paginator at line 190
int
key()
Get the current iterator key.
in
Paginator at line 198
bool
valid()
Determine if another page should be requested.
in
Paginator at line 210
void
rewind()
Reset all iterator state.
in
Paginator at line 225
protected void
onRewind()
Process extra state when the paginator rewinds.
in
Paginator at line 234
iterable
items()
Iterate over every response item.
in
Paginator at line 248
LazyCollection
collect(bool $throughItems = true)
Create a lazy collection from page responses or response items.
at line 86
array
pool(int $concurrency = 5, callable|null $responseHandler = null, callable|null $exceptionHandler = null)
Reject pooled cursor pagination because later cursors depend on earlier responses.
in
Paginator at line 341
int
totalResults()
Get the total number of processed results.
in
Paginator at line 351
Paginator
maxPages(int|null $maxPages)
Set the maximum number of pages to request.
in
Paginator at line 363
Paginator
perPageLimit(int|null $perPageLimit)
Set the number of results requested per page.
in
Paginator at line 383
int
currentPage()
Get the current zero-based page position.
in
Paginator at line 393
Paginator
startPage(int $startPage)
Set the first page number requested after rewind.
in
Paginator at line 403
int
count()
Count the number of pages yielded by the iterator.
at line 58
protected string
getPageChecksum(Response $response)
Compare page contents together with the provider's continuation cursor.
in
Paginator at line 431
protected string
getBodyChecksum(Response $response)
Get the checksum of the response body.
in
Paginator at line 442
protected array
pageItems(Response $response)
Resolve response items using the request override when present.
in
Paginator at line 459
protected iterable
remainingRequests(int $lastPage)
Yield independently addressable page requests after the first page.
in
Paginator at line 474
protected int
getTotalPages(Response $response)
Get the total number of independently addressable pages.
at line 40
protected Request
applyPagination(Request $request)
Apply cursor pagination to the request.
in
Paginator at line 492
abstract protected bool
isLastPage(Response $response)
Determine if the response is the last page.
in
Paginator at line 501
abstract protected array
getPageItems(Response $response, Request $request)
Get the items from one page.
at line 77
abstract protected bool|float|int|string|null
getNextCursor(Response $response)
Get the next cursor.
The default query encoding omits null and encodes booleans as 1/0; override applyPagination() when the API requires another encoding.