movescode/pager

Official pagination component for MovesOS

Maintainers

Package info

github.com/djalmamartins/pager

Homepage

pkg:composer/movescode/pager

Transparency log

Statistics

Installs: 15

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2026-08-22 22:58 UTC

This package is auto-updated.

Last update: 2026-08-23 03:16:56 UTC


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.