zend-blog-3-backend
51 строка · 1.0 Кб
1<?php
2/**
3* User: morontt
4* Date: 02.10.2024
5* Time: 09:58
6*/
7
8namespace App\API\Fractal;
9
10use Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination;
11use League\Fractal\Pagination\PaginatorInterface;
12
13class KnpPaginatorAdapter implements PaginatorInterface
14{
15private array $paginationsData;
16
17public function __construct(SlidingPagination $paginator)
18{
19$this->paginationsData = $paginator->getPaginationData();
20}
21
22public function getCurrentPage(): int
23{
24return $this->paginationsData['current'];
25}
26
27public function getLastPage(): int
28{
29return $this->paginationsData['pageCount'];
30}
31
32public function getTotal(): int
33{
34return $this->paginationsData['totalCount'];
35}
36
37public function getCount(): int
38{
39return $this->paginationsData['currentItemCount'] ?? 0;
40}
41
42public function getPerPage(): int
43{
44return $this->paginationsData['numItemsPerPage'];
45}
46
47public function getUrl(int $page): string
48{
49return '/fake/' . $page;
50}
51}
52