123456789101112131415161718192021222324252627282930313233343536373839404142 |
- <?php
- namespace App\Service;
- use Doctrine\ORM\QueryBuilder;
- use Doctrine\ORM\Tools\Pagination\Paginator;
- class Pagination
- {
- protected readonly Paginator $paginator;
- public function __construct(
- protected readonly QueryBuilder $queryBuilder,
- protected readonly int $limit,
- protected readonly int $currentPage
- )
- {
- $this->paginator = new Paginator($this->queryBuilder);
- }
- public function getPaginator(): Paginator
- {
- return $this->paginator;
- }
- public function getTotal(): int
- {
- return $this->paginator->count();
- }
- public function getPages(): int
- {
- $pages = ceil($this->paginator->count() / $this->limit);
- $pages = $pages > 0 ? $pages: 1;
- return $pages;
- }
- public function getCurrentPage(): int
- {
- return $this->currentPage;
- }
- }
|