stepthefkup/pagination

This package is abandoned and no longer maintained. The author suggests using the loyaltycorp/easy-pagination package instead.

Provides a generic way to handle pagination data from clients

v0.4.5 2019-03-27 06:11 UTC

This package is auto-updated.

Last update: 2019-04-18 06:05:00 UTC


README

Provides a generic way to handle pagination data from clients.

You are wondering if this package could be useful to you, right? Here are some points to help you find out:

  • You have an PHP application
  • You have to handle pagination data from your clients
  • You are sick of having to resolve the "page" and "perPage" (or however you want to call those parameters) again and again
  • Or sick of hearing "The pagination doesn't work for the blog posts comments" and realise you have a typo in "parPage"
  • ...

This package provides you with out-the-box tools to implement a generic, centralised and consistent pagination data handling system to keep you away from any troubles :)

Documentation

Installation

The recommended way to install this package is to use Composer.

$ composer require stepthefkup/pagination

How it works

This package provides different "resolvers" which will extract the pagination data from a request according to your configuration. To guarantee interoperability, the resolvers expect a PSR7 ServerRequestInterface, if your project uses it too then perfect! But no stress if it doesn't you can use the Psr7Factory package which will convert your requests for you!

Resolvers

Can't you find your happiness in the existing resolvers? Please let us know or even better create a PR :)

StartSize Resolvers

The "StartSize" resolvers assume your pagination is based on only 2 attributes to define the start and its size. What are those attributes names or default values? This is up to you! A StartSizeConfigInterface (and its default implementation) is here for you to define all that as you want.

Here are some examples of configuration you can have:

start_attributes start_default size_attribute size_default
page 1 perPage 15
_page 1 _per_page 15
number 1 size 15
offset 0 limit 30
StartSize Resolvers List