Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dimmir/paginatorbundle
Flexible pagination bundle for Symfony 3. Created for use on the REST AP
https://github.com/dimmir/paginatorbundle
pagination paginator rest-api symfony symfony-bundle
Last synced: 19 days ago
JSON representation
Flexible pagination bundle for Symfony 3. Created for use on the REST AP
- Host: GitHub
- URL: https://github.com/dimmir/paginatorbundle
- Owner: dimmir
- License: mit
- Created: 2017-05-15T10:00:47.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-05-24T05:51:46.000Z (over 7 years ago)
- Last Synced: 2025-01-19T07:42:25.176Z (19 days ago)
- Topics: pagination, paginator, rest-api, symfony, symfony-bundle
- Language: PHP
- Homepage:
- Size: 74.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PaginatorBundle
Flexible pagination bundle for Symfony 3.
This bundle provides an easy way to add pagination support to the collection of your API.
It easy used with FOSRestBundle[![Build Status](https://travis-ci.org/dimmir/PaginatorBundle.svg?branch=master)](https://travis-ci.org/dimmir/PaginatorBundle) [![Coverage Status](https://coveralls.io/repos/github/dimmir/PaginatorBundle/badge.svg?branch=master)](https://coveralls.io/github/dimmir/PaginatorBundle?branch=master) [![Dependency Status](https://www.versioneye.com/user/projects/5924edc085cd28003240f45f/badge.svg?style=flat-square)](https://www.versioneye.com/user/projects/5924edc085cd28003240f45f)
## Installation:
You can install this bundle using composer:
```sh
composer require dimmir/paginator-bundle
```Add the bundle to your AppKernel.php file:
```php
// app/AppKernel.php
public function registerBundles()
{
return array(
// ...
new DMR\Bundle\PaginatorBundle\PaginatorBundle(),
// ...
);
}
```## Configuration
```yaml
dmr_paginator:
items_per_page: 25 # default number items per page
max_items_per_page: ~ # The maximum number of items per page.
page_request_parameter_name: page # The name of current page for query parameter
client_items_per_page: false # To allow the client to set the number of items per page.
items_per_page_request_parameter_name: itemsPerPage # The name of items per page query parameter
options: # options fo Paginator
fetch_join_collection: true # The option fetchJoinCollection for Doctrine ORM Paginator
```## Usage
Currently paginator can paginate:
- `Doctrine\ORM\QueryBuilder`
Example for used with FOSRestBundle:
```php
// AppBundle\Controller\UserController.php/**
* @View()
*/
public function cgetAction (Request $request)
{
$queryBuilder = $this->getDoctrine()->getManager()
->getRepository('AppBundle:User')->createQueryBuilder('u');$paginator = $this->get('dmr_paginator.service')->pagination($queryBuilder);
return new SliderRepresentation($paginator);
}
```### Representations
DMR\Bundle\PaginatorBundle\Representation\CollectionRepresentation:
```json
{
"items": [
{
"id": 1,
},
],
"pagination": {
"page": 1,
"itemsPerPage": 25,
"totalItemsCount": 40,
"pagesCount": 2
}
}
```DMR\Bundle\PaginatorBundle\Representation\SliderRepresentation:
```json
{
"items": [
{
"id": 1,
},
],
"previus": 1,
"next": 3
}
```