PHP code example of vinyvicente / silex-knp-paginator

1. Go to this page and download the library: Download vinyvicente/silex-knp-paginator library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

vinyvicente / silex-knp-paginator example snippets




use Silex\Application;
use Silex\Knp\PaginatorProvider;
use Symfony\Component\HttpFoundation\Request;

$app = new Application();
$app['debug'] = true;
$app->register(new Silex\Provider\TwigServiceProvider(), array(
    'twig.path' => __DIR__ . '/views',
));

// needs be after twig register :)
$app->register(new PaginatorProvider());

$app['knp_paginator.options'] = array(
    'default_options' => array(
        'sort_field_name' => 'sort',
        'sort_direction_name' => 'direction',
        'filter_field_name' => 'filterField',
        'filter_value_name' => 'filterValue',
        'page_name' => 'page',
        'distinct' => true,
    ),
    'template' => array(
        'pagination' => '@knp_paginator_bundle/sliding.html.twig',
        'filtration' => '@knp_paginator_bundle/filtration.html.twig',
        'sortable' => '@knp_paginator_bundle/sortable_link.html.twig',
    ),
    'page_range' => 5,
);

$app->get('/', function(Request $request) use ($app) {

    $array = [
        'foo' => ['id' => 'foo'],
        'bar' => ['id' => 'bar'],
        'baz' => ['id' => 'baz'],
        'echo' => ['id' => 'echo'],
        'delta' => ['id' => 'delta'],
    ];

    $currentPage = (!empty($request->get('page'))) ? $request->get('page') : 1;
    $limitPage = 3;

    $sort = $request->get('sort');
    $direction = $request->get('direction', 'asc');

    $knp = $app['knp_paginator'];
    $paginator = $knp->paginate($array, $currentPage, $limitPage);
    $paginator->setCurrentPageNumber($currentPage);
    $paginator->setItemNumberPerPage($limitPage);

    return $app['twig']->render('example.html.twig', ['pagination' => $paginator]);
});

$app->run();