paginator = $paginator; } public function getPreviousPageNumber(): ?int { $previousPage = $this->paginator->getCurrentPageNumber() - 1; if ($previousPage > $this->paginator->getNumberOfPages()) { return null; } return $previousPage >= $this->getFirstPageNumber() ? $previousPage : null ; } public function getNextPageNumber(): ?int { $nextPage = $this->paginator->getCurrentPageNumber() + 1; return $nextPage <= $this->paginator->getNumberOfPages() ? $nextPage : null ; } public function getFirstPageNumber(): int { return 1; } public function getLastPageNumber(): int { return $this->paginator->getNumberOfPages(); } public function getStartRecordNumber(): int { if ($this->paginator->getCurrentPageNumber() > $this->paginator->getNumberOfPages()) { return 0; } return $this->paginator->getKeyOfFirstPaginatedItem() + 1; } public function getEndRecordNumber(): int { if ($this->paginator->getCurrentPageNumber() > $this->paginator->getNumberOfPages()) { return 0; } return $this->paginator->getKeyOfLastPaginatedItem() + 1; } /** * @return int[] */ public function getAllPageNumbers(): array { return range($this->getFirstPageNumber(), $this->getLastPageNumber()); } public function getPaginator(): PaginatorInterface { return $this->paginator; } }