kgilden / pager
一个分页库,用于将结果分割成多个页面
v2.0.0
2023-05-04 10:53 UTC
Requires
- php: ^7.4|^8.0
Requires (Dev)
- doctrine/orm: ^2.4
- phpunit/phpunit: ^8.2.3
- ruflin/elastica: >=0.90.1.0
- symfony/config: ^4.4|^5.4
- symfony/dependency-injection: ^4.4|^5.4
- symfony/http-foundation: ^4.4|^5.4
- symfony/http-kernel: ^4.4|^5.4
- symfony/yaml: ^5.1
- twig/twig: ^1.43|^2.7
Suggests
- ext-mongo: to use MongoAdapter
- doctrine/orm: ^2.4, if you're using DqlAdapter
- ruflin/elastica: >=0.90.1.0 to use ElasticaAdapter
- symfony/http-foundation: ^4.4|^5.4 for automatic current page detection
- twig/twig: ^1.43|^2.7 to use the Twig Extension
Conflicts
- doctrine/orm: <2.3
- ruflin/elastica: <0.90.1.0
- symfony/http-foundation: <4.4|<5.4,>=5
- twig/twig: <1.43|<2.7,>=2
This package is auto-updated.
Last update: 2024-09-04 14:31:43 UTC
README
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 许可证 保护。