kgilden/pager

一个分页库,用于将结果分割成多个页面

v2.0.0 2023-05-04 10:53 UTC

README

Build Status Quality Packagist

Pager 是一个库,可以将结果分割成多个页面 - 您想要的任何方式!

功能

  • 内置了5种适配器,适用于数组、Doctrine ORM、ElasticSearch 和 MongoDB;
  • 提供安全的方法子集,以避免计数项目;
  • 策略用于不均匀地分割页面(例如,最后两个页面合并);
  • 与 Symfony 的 HttpKernel 优雅集成,以推断当前页面;
  • 提供捆绑包,无缝集成到 Symfony 中;

文档

阅读文档

用法

两个对象协同工作,将一组项目分割成页面:分页器和适配器。分页器充当页面的工厂。适配器允许具体的项集进行分页(例如,存在 Doctrine 查询的适配器)。

以下是一个数组的示例(更多信息请参阅 文档

<?php

use KG\Pager\Pager;
use KG\Pager\Adapter\ArrayAdapter;

$list = ['apple', 'banana', 'cucumber', 'dragonfruit', 'eggplant'];
$itemsPerPage = 2;
$currentPage = 3;

$pager = new Pager();
$page = $pager->paginate(new ArrayAdapter($list), $itemsPerPage, $currentPage);

$page->isFirst(); // false
$page->isLast(); // true - there's a total of 3 pages
$page->getNumber(); // 3 - it's $currentPage

count($page->getItems()); // 1
$page->getItems(); // ["eggplant"]

?>

安装

使用 composer 安装:composer.phar require kgilden/pager

测试

只需在库的根目录中运行 phpunit 以运行完整的测试套件。

许可

此库受 MIT 许可证 保护。