tsany/pagination-library-v2

A lightweight PHP pagination library with JSON formatting support.

Installs: 2

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Forks: 0

pkg:composer/tsany/pagination-library-v2

v1.0.0 2025-10-09 08:01 UTC

This package is not auto-updated.

Last update: 2026-01-13 07:46:29 UTC


README

PHP License Build Status Tests

๐Ÿงฎ Library sederhana dan fleksibel untuk melakukan pagination (paginasi) data di PHP.
Mendukung berbagai sumber data melalui sistem adapter dan hasilkan metadata yang rapi dalam format array maupun JSON.

โš™๏ธ Fitur Utama

โœ… Menggunakan adapter pattern (fleksibel untuk berbagai sumber data)
โœ… Mendukung output array dan JSON
โœ… Termasuk metadata lengkap (total data, halaman, URL navigasi, dll.)
โœ… Mudah diintegrasikan ke framework (Laravel, Yii, CodeIgniter, dll.)
โœ… Diuji dengan PHPUnit

๐Ÿ“‚ Struktur Direktori

โ”œโ”€โ”€ src/
โ”‚ โ”œโ”€โ”€ Adapters/
โ”‚ โ”‚ โ”œโ”€โ”€ AdapterInterface.php
โ”‚ โ”‚ โ””โ”€โ”€ ArrayAdapter.php
โ”‚ โ”œโ”€โ”€ Helpers/
โ”‚ โ”‚ โ”œโ”€โ”€ JsonFormatter.php
โ”‚ โ”‚ โ””โ”€โ”€ Pagination.php
โ”‚ โ”œโ”€โ”€ Paginator.php
โ”‚ โ””โ”€โ”€ Pagination.php
โ”œโ”€โ”€ tests/
โ”‚ โ””โ”€โ”€ PaginationTest.php
โ”œโ”€โ”€ composer.json
โ”œโ”€โ”€ phpunit.xml
โ””โ”€โ”€ README.md

๐Ÿš€ Instalasi

Via Composer

composer require your-vendor/pagination-library

Cloning Repository

cd pagination-library
composer install

๐Ÿงฉ Contoh Penggunaan

1๏ธโƒฃ Paginasi dari Array

use PaginationLib\Pagination;

$data = range(1, 100); // contoh data array
$adapter = new ArrayAdapter($data);

$pagination = new Pagination($adapter, perPage: 10, currentPage: 2, baseUrl: '/items?page=');

print_r($pagination->toArray());

Output

  'meta' => [
    'total_items' => 100,
    'per_page' => 10,
    'current_page' => 2,
    'total_pages' => 10,
    'next_page_url' => '/items?page=3',
    'prev_page_url' => '/items?page=1'
  ],
  'data' => [11,12,13,14,15,16,17,18,19,20]
]

2๏ธโƒฃ Output JSON

echo $pagination->toJson();

Output

{
  "meta": {
    "total_items": 100,
    "per_page": 10,
    "current_page": 2,
    "total_pages": 10,
    "next_page_url": "/items?page=3",
    "prev_page_url": "/items?page=1"
  },
  "data": [11,12,13,14,15,16,17,18,19,20]
}

๐Ÿงช Menjalankan Unit Test

vendor/bin/phpunit