eonx-com/easy-pagination

Provides a generic way to handle pagination data from clients

Installs: 690 567

Dependents: 3

Suggesters: 2

Security: 0

Stars: 2

Watchers: 2

Forks: 0

Open Issues: 0

Type:symfony-bundle

5.10.2 2024-04-05 14:51 UTC

This package is auto-updated.

Last update: 2024-04-05 14:55:33 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 eonx-com/easy-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!

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