$this->serializeItems(ArrayUtils::iteratorToArray($paginator->getCurrentItems()), $transformer), 'pagination' => [ 'currentPage' => $paginator->getCurrentPageNumber(), 'pagesCount' => $paginator->count(), 'itemsPerPage' => $paginator->getItemCountPerPage(), 'itemsInCurrentPage' => $paginator->getCurrentItemCount(), 'totalItems' => $paginator->getTotalItemCount(), ], ]; } private function serializeItems(array $items, ?DataTransformerInterface $transformer = null): array { return $transformer === null ? $items : array_map([$transformer, 'transform'], $items); } /** * Checks if provided paginator is in last page * * @param Paginator $paginator * @return bool */ private function isLastPage(Paginator $paginator): bool { return $paginator->getCurrentPageNumber() >= $paginator->count(); } private function formatCurrentPageMessage(Paginator $paginator, string $pattern): string { return sprintf($pattern, $paginator->getCurrentPageNumber(), $paginator->count()); } }