1 | <?php namespace Nord\Lumen\Search; |
||
5 | class Pagination |
||
6 | { |
||
7 | const DEFAULT_PAGE_SIZE = 20; |
||
8 | |||
9 | /** |
||
10 | * @var int |
||
11 | */ |
||
12 | private $pageNumber; |
||
13 | |||
14 | /** |
||
15 | * @var int |
||
16 | */ |
||
17 | private $pageSize; |
||
18 | |||
19 | |||
20 | /** |
||
21 | * Pagination constructor. |
||
22 | * |
||
23 | * @param int $pageNumber |
||
24 | * @param int $pageSize |
||
25 | */ |
||
26 | public function __construct($pageNumber = 1, $pageSize = self::DEFAULT_PAGE_SIZE) |
||
27 | { |
||
28 | $this->setPageNumber($pageNumber); |
||
29 | $this->setPageSize($pageSize); |
||
30 | } |
||
31 | |||
32 | |||
33 | /** |
||
34 | * @return int |
||
35 | */ |
||
36 | public function calculateOffset() |
||
40 | |||
41 | |||
42 | /** |
||
43 | * @return int |
||
44 | */ |
||
45 | public function getPageNumber() |
||
49 | |||
50 | |||
51 | /** |
||
52 | * @return int |
||
53 | */ |
||
54 | public function getPageSize() |
||
58 | |||
59 | |||
60 | /** |
||
61 | * @param int $pageNumber |
||
62 | * |
||
63 | * @throws InvalidArgument |
||
64 | */ |
||
65 | private function setPageNumber($pageNumber) |
||
77 | |||
78 | |||
79 | /** |
||
80 | * @param int $pageSize |
||
81 | * |
||
82 | * @throws InvalidArgument |
||
83 | */ |
||
84 | private function setPageSize($pageSize) |
||
96 | } |
||
97 |