Skip to content

Commit 3a8329f

Browse files
authored
Add every pagination options in PaginationOptions (#4065)
* Add every pagination options in PaginationOptions * compat php 7.1 :'(
1 parent a3f3d7c commit 3a8329f

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

src/Bridge/Symfony/Bundle/Resources/config/data_provider.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@
4141
<argument>%api_platform.collection.pagination.items_per_page_parameter_name%</argument>
4242
<argument>%api_platform.collection.pagination.client_enabled%</argument>
4343
<argument>%api_platform.collection.pagination.enabled_parameter_name%</argument>
44+
<argument>%api_platform.collection.pagination.items_per_page%</argument>
45+
<argument>%api_platform.collection.pagination.maximum_items_per_page%</argument>
46+
<argument>%api_platform.collection.pagination.partial%</argument>
47+
<argument>%api_platform.collection.pagination.client_partial%</argument>
48+
<argument>%api_platform.collection.pagination.partial_parameter_name%</argument>
4449
</service>
4550
<service id="ApiPlatform\Core\DataProvider\PaginationOptions" alias="api_platform.pagination_options" />
4651

src/DataProvider/PaginationOptions.php

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,25 @@ final class PaginationOptions
2121
private $itemsPerPageParameterName;
2222
private $paginationClientEnabled;
2323
private $paginationClientEnabledParameterName;
24+
private $itemsPerPage;
25+
private $maximumItemsPerPage;
26+
private $partialPaginationEnabled;
27+
private $clientPartialPaginationEnabled;
28+
private $partialPaginationParameterName;
2429

25-
public function __construct(bool $paginationEnabled = true, string $paginationPageParameterName = 'page', bool $clientItemsPerPage = false, string $itemsPerPageParameterName = 'itemsPerPage', bool $paginationClientEnabled = false, string $paginationClientEnabledParameterName = 'pagination')
30+
public function __construct(bool $paginationEnabled = true, string $paginationPageParameterName = 'page', bool $clientItemsPerPage = false, string $itemsPerPageParameterName = 'itemsPerPage', bool $paginationClientEnabled = false, string $paginationClientEnabledParameterName = 'pagination', int $itemsPerPage = 30, int $maximumItemsPerPage = null, bool $partialPaginationEnabled = false, bool $clientPartialPaginationEnabled = false, string $partialPaginationParameterName = 'partial')
2631
{
2732
$this->paginationEnabled = $paginationEnabled;
2833
$this->paginationPageParameterName = $paginationPageParameterName;
2934
$this->clientItemsPerPage = $clientItemsPerPage;
3035
$this->itemsPerPageParameterName = $itemsPerPageParameterName;
3136
$this->paginationClientEnabled = $paginationClientEnabled;
3237
$this->paginationClientEnabledParameterName = $paginationClientEnabledParameterName;
38+
$this->itemsPerPage = $itemsPerPage;
39+
$this->maximumItemsPerPage = $maximumItemsPerPage;
40+
$this->partialPaginationEnabled = $partialPaginationEnabled;
41+
$this->clientPartialPaginationEnabled = $clientPartialPaginationEnabled;
42+
$this->partialPaginationParameterName = $partialPaginationParameterName;
3343
}
3444

3545
public function isPaginationEnabled(): bool
@@ -57,8 +67,38 @@ public function getPaginationClientEnabled(): bool
5767
return $this->paginationClientEnabled;
5868
}
5969

70+
public function isPaginationClientEnabled(): bool
71+
{
72+
return $this->paginationClientEnabled;
73+
}
74+
6075
public function getPaginationClientEnabledParameterName(): string
6176
{
6277
return $this->paginationClientEnabledParameterName;
6378
}
79+
80+
public function getItemsPerPage(): int
81+
{
82+
return $this->itemsPerPage;
83+
}
84+
85+
public function getMaximumItemsPerPage(): int
86+
{
87+
return $this->maximumItemsPerPage;
88+
}
89+
90+
public function isPartialPaginationEnabled(): bool
91+
{
92+
return $this->partialPaginationEnabled;
93+
}
94+
95+
public function isClientPartialPaginationEnabled(): bool
96+
{
97+
return $this->clientPartialPaginationEnabled;
98+
}
99+
100+
public function getPartialPaginationParameterName(): string
101+
{
102+
return $this->partialPaginationParameterName;
103+
}
64104
}

0 commit comments

Comments
 (0)