shorif2000/pagination

为项目列表创建分页控制结构

2.0 2019-11-05 13:48 UTC

This package is auto-updated.

Last update: 2024-09-06 02:32:54 UTC


README

为项目列表创建分页控制结构。支持可遍历的列表或集合,并生成定义分页参数的数据结构。(如 array/ArrayObject 和可能的 mysql 数据库连接)。

先决条件

  • Composer
  • PHP 7.1

安装

composer require shorif2000/pagination

用法

数组

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);

您可以使用以下函数来获取数据

    public function getItems();
    
    public function getCurrentPageNumber(): int;
    
    public function getNumberOfPages(): int;
    
    public function getTotal(): int;
    
    public function getTotalOnCurrentPage(): int;
    
    public function getTotalPerPage(): int;

实验性

支持数据库。

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);

运行测试

phpunit --debug tests/PaginatorTest.php