pportelette/pageable-bundle

This Bundle provides pagination repository's method based on Doctrine Paginator

v0.1.5 2024-02-29 14:43 UTC

This package is auto-updated.

Last update: 2024-05-29 15:44:45 UTC


README

This bundle adds a method 'getPage' to a Doctrine repository that paginates the result of a query. It provides also the methods 'add' and 'remove'.

Installation

Open a command console, enter your project directory and execute:

$ composer require pportelette/pageable-bundle

Applications that don't use Symfony Flex

Then, enable the bundle by adding it to the list of registered bundles in the config/bundles.php file of your project:

// config/bundles.php

return [
    Pportelette\PageableBundle\PportelettePageableBundle::class => ['all' => true],
];

Usage

From a doctrine repository:

// src/Repository/MyRepository.php
use Pportelette\PageableBundle\Repository\AbstractRepository;
use Pportelette\PageableBundle\Model\Pageable;

class MyRepository extends AbstractRepository
{
    public function getAllPaginated(int $page): Pageable {
        $queryBuilder = $this->createQueryBuilder('e');

        $nbPerPage = 50;

        return $this->getPage(
            $queryBuilder,
            $page,
            $nbPerPage
        );
    }
}

That's it!

The third parameter is optional and is '30' by default. It is possible to change the default value by adding a configuration file:

# config/packages/pportelette_pageable.yaml
pportelette_pageable:
  default:
    nb_per_page: 50