shorif2000 / pagination
creates a pagination control structure for a list of items
2.0
2019-11-05 13:48 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ^8.5@dev
This package is auto-updated.
Last update: 2025-03-06 03:32:59 UTC
README
Creates a pagination control structure for a list of items. Support traversable list or collection and produce a data structure that defines a set of pagination parameters. (array/ArrayObject
and possible a database connection asusming mysql).
Prerequisites
- Composer
- PhP 7.1
Installing
composer require shorif2000/pagination
Usage
Array
use Pagination\PaginatorFactory; use Pagination\Lib\ArrayPageProvider; ... $pageNumber = 1; $itemsPerPage = 10; $input = range(0, 100); $input = array_slice($input, 0, 10); $pagination = (new PaginatorFactory(new ArrayPageProvider($input)))->createPaginator($pageNumber, $itemsPerPage);
ArrayObject
use Pagination\PaginatorFactory; use Pagination\Lib\ArrayObjectPageProvider; ... $itemsPerPage = 10; $input = range(0, 100); $input = array_slice($input, 0, 10); $input = new \ArrayObject($input); $pageNumber = 1; $pagination = (new PaginatorFactory(new ArrayObjectPageProvider($input)))->createPaginator($pageNumber, $itemsPerPage);
You can call the following functions to get data
public function getItems(); public function getCurrentPageNumber(): int; public function getNumberOfPages(): int; public function getTotal(): int; public function getTotalOnCurrentPage(): int; public function getTotalPerPage(): int;
Experimental
For database support.
use Pagination\PaginatorFactory; use Pagination\Lib\DbPagintaor; ... $pageNumber = 1; $itemsPerPage = 10; $input = range(0, 100); $input = array_slice($input, 0, 10); $pdo = ''; // mysql resource $table = 'country'; $pagination = (new PaginatorFactory(new DbPagintaor($pdo, $table)))->createPaginator($pageNumber, $itemsPerPage);
Running the tests
phpunit --debug tests/PaginatorTest.php