items = $items; $this->setCurrentPageNumber($currentPageNumber); $this->setItemsPerPage($itemsPerPage); $this->updateInternalState(); } /** * @return iterable|array */ public function getPaginatedItems(): iterable { return $this->paginatedItems; } protected function updatePaginatedItems(int $itemsPerPage, int $offset): void { $this->paginatedItems = array_slice($this->items, $offset, $itemsPerPage); } protected function getTotalAmountOfItems(): int { return count($this->items); } protected function getAmountOfItemsOnCurrentPage(): int { return count($this->paginatedItems); } }