Skip to content
A library for PHP to split results into multiple pages
PHP
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
src
tests
.gitignore
.scrutinizer.yml
.travis.yml
CHANGELOG.md
LICENSE
README.md
composer.json
phpunit.xml.dist

README.md

Pager

Build Status Quality Packagist

Pager is a library to split results to multiple pages - any way you want them!

Features

  • 5 built-in adapters for arrays, Doctrine ORM, ElasticSearch & MongoDB;
  • safe subset of methods to not even count items;
  • strategies to split pages inequally (i.e. 2 last pages merged);
  • integrates nicely with Symfony's HttpKernel to infer the current page;
  • provides a bundle to seamlessly integrate with Symfony;

Documentation

Read the documentation

Usage

Two objects work together to split a set of items to pages: pager and adapter. Pagers act as factories for pages. Adapters allow concrete item sets to be paged (for example there's an adapter for Doctrine queries).

Here's an example with arrays (check out the docs for more):

<?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"]

?>

Installation

Install using composer: composer.phar require kgilden/pager

Testing

Simply run phpunit in the root directory of the library for the full test suite.

License

This library is under the MIT license.

You can’t perform that action at this time.