-
Notifications
You must be signed in to change notification settings - Fork 1
/
PaginatorInterface.php
66 lines (48 loc) · 1.39 KB
/
PaginatorInterface.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
declare(strict_types=1);
/*
* This file is part of the ecommit/paginator package.
*
* (c) E-commit <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Ecommit\Paginator;
/**
* @template TKey
*
* @template-covariant TValue
*
* @template TResolvedOptions of array<string, mixed>
*
* @template-extends \IteratorAggregate<TKey, TValue>
*/
interface PaginatorInterface extends \IteratorAggregate, \Countable
{
/**
* @return TResolvedOptions
*/
public function getOptions(): array;
/**
* @template TResolvedOptionKey of key-of<TResolvedOptions>
*
* @param TResolvedOptionKey $option
*
* @return TResolvedOptions[TResolvedOptionKey]
*/
public function getOption(string $option): mixed;
public function haveToPaginate(): bool;
public function getFirstIndice(): int;
public function getLastIndice(): int;
public function getFirstPage(): int;
public function getPreviousPage(): ?int;
public function getPage(): int;
public function pageExists(): bool;
public function getNextPage(): ?int;
public function getLastPage(): int;
public function isFirstPage(): bool;
public function isLastPage(): bool;
public function getMaxPerPage(): int;
public function isInitialized(): bool;
}