Skip to content

Show the classic "First | Prev | ... 54, 55, 56, .... | Next | Last" navigation element

Notifications You must be signed in to change notification settings

TurboLabIt/php-symfony-paginator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A simple Symfony bundle to render the "classic" pagination element.

It also works without Symfony, as a plain PHP object.

📦 Install it with composer

symfony composer require turbolabit/paginatorbundle:dev-main

🏗️ Use it

src/Service/Paginator.php

<?php
namespace App\Service;

use \TurboLabIt\PaginatorBundle\Service\Paginator as BasePaginator;


class Paginator extends BasePaginator
{
    protected string $pageParam = 'p';
    protected int $slotNum      = 5;
}

src/Controller/ListingController.php

<?php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use App\Service\Paginator;


class ListingController extends AbstractController
{
    protected Request $request;


    public function __construct(RequestStack $requestStack, protected Paginator $paginator)
    {
        $this->request = $requestStack->getCurrentRequest();
    }


    #[Route('/{categorySlug}/', name: 'app_listing', priority: -99)]
    public function listing(string $categorySlug) : Response
    {
        $currentPage    = $this->request->get('p') ?? 1; 
        $totalPages     = 99;
        $oPages =
            $this->paginator
                ->setBaseUrl('/' . $categorySlug . '/')
                ->build($currentPage, $totalPages);

        return $this->render('listing.html.twig', [
            'page'      => $currentPage,
            'Pages'     => $oPages
        ]);
    }
}

🧪 Test it

bash scripts/symfony-bundle-tester.sh

About

Show the classic "First | Prev | ... 54, 55, 56, .... | Next | Last" navigation element

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published