A lightweight PHP paginator., (*1)
Installation
Add in your composer.json
with following require entry:, (*2)
{
"require": {
"wake/pager": "*"
}
}
or using composer:, (*3)
$ composer require wake/pager:*
then run composer install
or composer update
., (*4)
Use Pager without any ORM., (*5)
Use Pager\Pager;
$pager = new Pager ();
$pager->total (1000) // 1000 data items
->page (13) // Set current page to no.13
->paging ();
// First page: 1
echo $pager->pages->top;
// Last page (total pages): 67
echo $pager->pages->end;
// First page of page group: 8
echo $page->pages->first;
// Last page of page group: 17
echo $page->pages->last;
// Next page: 14
echo $page->pages->next;
// Next 10 page: 24
echo $page->pages->next10;
// Pages
foreach ($pager->pages as $page)
echo $page . "<br />";
// Page url
foreach ($pager->pages as $page)
echo $page->url . "<br />";
Set amount of items per page, default to 15
., (*6)
// Display 12 items on each page.
$pager->show (12);
Set total amount of items., (*7)
// Set total amount of 100.
$pager->total (100);
Set amount of page list per page, default to 10
., (*8)
// Display 5 pages of page group on each page - `1 2 3 4 5`
$pager->size (5);
Set current page, default to 1
., (*9)
// Set current to page 3
$pager->page (3);
List pages of page group dynamically or fixed, default is dynamic
., (*10)
// List dynamically: `1 2 3 4 5` -> `2 3 4 5 6` -> `3 4 5 6 7`
$pager->dynamic ();
// List fixed: `1 2 3 4 5` -> `6 7 8 9 10`
$pager->fixed ();
Set url pattern or handler function, default is pattern (:num)
., (*11)
// /?page=3
$pager->url ('/?page=(:num)');
// /?p=3
$pager->url (function ($pageItem) {
return '/?p=' . $pageItem->num;
});
Calculate and build page items, must be called after all options are set., (*12)
$pager->paging ();
Usage: Pages
Container of page items., (*13)
Use Pager\Pager;
$pager = new Pager ();
$pager->total (1000) // 1000 data items
->page (13) // current page is no.13
->paging ();
$pages = $pager->pages;
$pages->top
First page of all pages, generally is 1., (*14)
$pages->end
Last page of all pages., (*15)
$pages->first
First page of page group., (*16)
$pages->last
Last page of page group., (*17)
$pages->total
Total amount of pages., (*18)
$pages->current
, $pages->page
Current page., (*19)
$pages->next
Next page., (*20)
$pages->prev
Previous page., (*21)
$pages->next*N
Next N
page., (*22)
// Next page
$pages->next;
$pages->next1;
// Next 5 page
$pages->next5;
$pages->prev*N
Previous N
page., (*23)
// Previous page
$pages->prev;
$pages->prev1;
// Previous 5 page
$pages->prev5;
Usage: Page item
Page item., (*24)
Use Pager\Pager;
$pager = new Pager ();
$pager->total (1000) // 1000 data items
->page (13) // current page is no.13
->paging ();
$item = $pager->pages->first;
$item
, $item->num
Number of the page, $item could be use as string directly., (*25)
echo $item;
echo $item->num;
$item->url ()
Url of the page., (*26)
echo $item->url ();
Feedback
Please feel free to open an issue and let me know if there is any thoughts or questions :smiley:, (*27)
License
Released under the MIT license, (*28)