iscosta77 / paginator
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.
v1.0.0
2026-08-26 21:33 UTC
Requires
- php: ^8.2
Requires (Dev)
- phpunit/phpunit: ^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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.