2017 © Pedro Peláez
 

library pagination

Pagination for PHP

image

fdevs/pagination

Pagination for PHP

  • Tuesday, March 13, 2018
  • by andrey1s
  • Repository
  • 3 Watchers
  • 0 Stars
  • 3,048 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Pagination

This is a PHP paginator with a totally different core concept., (*1)

If you use Symfony 2, you could use our pagination bridge!, (*2)

Installation

Pagination uses Composer, please checkout the composer website for more information., (*3)

The simple following command will install pagination into your project. It also add a new entry in your composer.json and update the composer.lock as well., (*4)

composer require fdevs/pagination

Usage examples:

Controller

use FDevs\Pagination\Type\ArrayType;
use FDevs\Pagination\Model\CountPagination;
use FDevs\Pagination\Extension\ArrayType\PageExtension;
use FDevs\Pagination\Extension\ArrayType\LimitExtension;
use FDevs\Pagination\Extension\ArrayType\OffsetExtension;
use FDevs\Pagination\Extension\ArrayType\CountExtension;
use FDevs\Pagination\Paginator;
use FDevs\Pagination\Renderer\ClosureRenderer;

$paginator = new Paginator();

$paginator
    ->addType(new ArrayType(),[PageExtension::class,CountExtension::class])
;

$closureRenderer = new ClosureRenderer(function($data) use ($template) {return $twig->render($template, $data);});


$pagination = $paginator->paginate(['a', 'b', 'c'], ['limit' => 1, 'page' => 2], new CountPagination());

$closureRenderer->render($pagination);

create you Type pagination

<?php

namespace App\Pagination\Type;

use FDevs\Pagination\Model\PaginationInterface;

class PDOType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function paginate($target, PaginationInterface $pagination, array $options)
    {
        //your logic
        //$pagination->setItems($target->fetchAll());

        return $pagination;
    }

    /**
     * {@inheritdoc}
     */
    public function support($target)
    {
        return $target instanceof \PDOStatement;
    }
}

create you Type Extension

<?php

namespace App\Pagination\Extension\PDO;

use FDevs\Pagination\Extension\AbstractExtension;
use FDevs\Pagination\Model\CountPaginationInterface;
use FDevs\Pagination\Model\PaginationInterface;

class CountExtension extends AbstractExtension
{
    /**
     * {@inheritdoc}
     */
    public function supportPagination(PaginationInterface $pagination)
    {
        return $pagination instanceof CountPaginationInterface;
    }

    /**
     * {@inheritdoc}
     */
    public function prepareTarget($target, array $options, PaginationInterface $pagination)
    {
        /* @var $pagination CountPaginationInterface */
        $pagination->setCount($target->rowCount());

        return $target;
    }
}

add you type

//init pagination

$paginator
    ->addType(new App\Pagination\Type\PDOType(),[App\Pagination\Extension\PDO\CountExtension::classs])
;


Created by 4devs - Check out our blog for more insight into this and other open-source projects we release., (*5)

The Versions

13/03 2018

dev-master

9999999-dev

Pagination for PHP

  Sources   Download

MIT

The Requires

 

The Development Requires

page paging pagination paginator

13/03 2018

0.3.0

0.3.0.0

Pagination for PHP

  Sources   Download

MIT

The Requires

 

The Development Requires

page paging pagination paginator

11/10 2016

0.2.0

0.2.0.0

Pagination for PHP

  Sources   Download

MIT

The Requires

 

The Development Requires

page paging pagination paginator

09/10 2016

0.1.0

0.1.0.0

Pagination for PHP

  Sources   Download

MIT

The Requires

 

The Development Requires

page paging pagination paginator