tjweldon / pages
轻量级独立分页组件
dev-master
2020-07-20 14:28 UTC
Requires (Dev)
- phpunit/phpunit: 9.2.6
This package is auto-updated.
Last update: 2024-09-21 00:05:00 UTC
README
Pages是一个轻量级分页组件。它是对任何值集合的分页包装。
安装
Composer
composer require tjweldon/pages
用法
创建您的Pages
创建您的分页集合
$pages = Pages::empty()
->appendCollection($iterableCollectionOfItems)
->appendItem($aSingleItem)
;
$pages变量现在包含您的项目集合,但默认情况下不会分页。要设置分页
$pages->limitPageSize($pageSize);
或者
$pages->limitPageCount($pageCount);
警告:按顺序或相反顺序连续使用,将忽略第一个,因为一个值设置另一个值,这取决于项目数量。
从您的Pages读取
Pages类是Page对象的集合。Pages实现了\Iterator接口,可以像数组一样迭代,即。
$pages = Pages::empty()->appendCollection($iterableCollectionOfItems);
foreach ($pages as $pageNumber => $page) {
// do something
}
可以访问单个页面
$page = $pages->getPage($pageNumber)
在这两种情况下,$page变量存储一个Page实例。要访问页面上的项目
$items = $page->getItems();
Page类也实现了\Iterator接口,因此也可以迭代
foreach ($page as $index => $item) {
// do something
}
项目索引
项目按数字索引,有两种方案可用。默认情况下,页面和Page中的项目索引从0开始,页面号通过$page->getPageNumber()访问。您可以在任何时候将页面中的项目索引设置为相对于整个项目集合,如下所示
$fifthPage = Pages::empty()
->appendCollection($oneHundredItems)
->limitPageSize(10)
->getPage(4)
;
$fifthPage->getPageNumber() // Returns int(4)
$items = $fifthPage
->indexRelativeToPagination(true)
->getItems() // returns the items on the page with sequential indexes from 40 to 49
;
或者
foreach ($items->indexRelativeToPagination(true) as $index => $item) {
echo $index . ", "; // will echo the numbers 40 to 49
}