movescode / pager
Official pagination component for MovesOS
Requires
- php: ^8.2
README
Componente oficial de paginação do MovesOS. Calcula página, limite e offset e renderiza navegação HTML com URLs e classes personalizáveis.
Instalação
composer require movescode/pager:^1.0
Uso básico
use MovesCode\Pager\Pager; $pager = new Pager('/posts/page'); $pager->pager(total: 127, limit: 20, page: 3); $posts = $query ->limit($pager->limit()) ->offset($pager->offset()) ->fetch(true); echo $pager->render();
Para o exemplo, page() retorna 3, pages() retorna 7, limit() retorna 20 e offset() retorna 40.
Construtor
new Pager( link: '/posts/page', title: 'Página', first: ['Primeira página', '«'], last: ['Última página', '»'] );
O texto do link e os títulos podem ser adaptados ao idioma e design da aplicação.
Configuração
$pager->pager( total: 500, limit: 25, page: 8, range: 2 );
total: quantidade total de registros.limit: registros por página.page: página solicitada; é limitada ao intervalo válido.range: páginas exibidas antes e depois da atual.
Renderização
echo $pager->render('studio-pagination'); echo $pager->render('studio-pagination', false);
O primeiro argumento define a classe da nav. Com o segundo argumento false, os links laterais navegam para a página anterior e seguinte; com true, apontam para a primeira e última página.
Também estão disponíveis:
$pager->firstPage(); $pager->lastPage();
Quando existe apenas uma página, render() retorna null.
URLs e query strings
Use a palavra page como marcador da página:
new Pager('/studio/users/p/page?status=active&search=ana');
Na renderização, o marcador é substituído pelo número e a query string é preservada. O HTML é escapado em UTF-8.
Validação
Total e offset não podem ser negativos. Limite e range precisam ser positivos. Valores inválidos lançam InvalidArgumentException.
Veja exemple/index.php. Licença MIT.