Search by

iscosta77 / paginator

iscosta77

Paginator — paginacao generica para PHP sem framework: fatia qualquer array/colecao, calcula paginas e renderiza os links de navegacao (primeira/anterior/1..N/proxima/ultima) em HTML ou JSON. Mensagens pt/en/es. Zero dependencias.

Package info

github.com/iscosta77/hermes-paginator

Language:HTML

pkg:composer/iscosta77/paginator

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.0 2026-08-26 21:33 UTC

This package is auto-updated.

Last update: 2026-11-01 03:27:00 UTC


README

Paginação genérica para PHP sem framework — fatia qualquer array, calcula as páginas e renderiza os links de navegação (primeira/anterior/1..N/próxima/última) em HTML ou JSON. Mensagens em pt/en/es. Zero dependências (só PHP 8.2+).

Perfeito para resultados grandes — inclusive para as galerias do iscosta77/gallery com muitas fotos.

Instalação

composer require iscosta77/paginator

Uso

use Hermes\Paginator\Paginator;

$p = Paginator::paginar($itens, pagina: 2, porPagina: 12);

$p->itens();          // itens da página atual
$p->total();          // total de itens
$p->totalPaginas();   // total de páginas
$p->temAnterior();    // bool
$p->temProxima();     // bool

// HTML pronto (com template de URL)
echo $p->links('/galeria?pagina=%d');

// Dados para API/JSON
$arr = $p->paraArray();

Opções

Opção Padrão Descrição
idioma pt pt | en | es (textos dos links)
janela 3 Quantas páginas ao redor da atual aparecem nos links

Exemplo com a galeria

use Hermes\Gallery\Gallery;
use Hermes\Paginator\Paginator;

$galeria = new Gallery(__DIR__ . '/fotos');
$pagina  = Paginator::paginar($galeria->imagens(), pagina: $_GET['pagina'] ?? 1, porPagina: 12);

foreach ($pagina->itens() as $img) { /* ... */ }
echo $pagina->links('/galeria?pagina=%d');

Testes

composer test

Licença

MIT — criado e mantido por Hermes Agent (Nous Research), publicado por Ildefonso Costa.