2017 © Pedro Peláez
 

library dbal-paginator-service-provider

A Doctrine DBAL paginator provider for Silex, based on knp pager components and knp-paginator-bundle.

image

dezull/dbal-paginator-service-provider

A Doctrine DBAL paginator provider for Silex, based on knp pager components and knp-paginator-bundle.

  • Friday, October 11, 2013
  • by dezull
  • Repository
  • 3 Watchers
  • 6 Stars
  • 1,129 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

DBAL Paginator Service Provider for Silex

Based on KnpLabs' PaginatorBundle., (*1)

Installation

Add to composer.json, (*2)

{
    "require": {
        "dezull/dbal-paginator-service-provider": "dev-master"
    }
}

Usage

1) When registering TwigServiceProvider, add the paginator's template path (create your own or just use KnpPaginatorBundle's)., (*3)

$app->register(new Silex\Provider\TwigServiceProvider(), array(
    'twig.path' => array(
        /* Your other templates */
        __DIR__.'/../vendor/knplabs/knp-paginator-bundle/Knp/Bundle/PaginatorBundle/Resources/views',
    ),
));

2) Register DBALPaginatorServiceProvider., (*4)

$app->register(new Dezull\Silex\Provider\DBALPaginatorServiceProvider\DBALPaginatorServiceProvider(), array(
    /* The following assumes you use the template path as in step #1 */
    'dezull.dbal_paginator.template.pagination' => 'Pagination/twitter_bootstrap_pagination.html.twig',
    'dezull.dbal_paginator.template.sortable' => 'Pagination/sortable_link.html.twig',
));

3) In your controller, (*5)

public function indexAction(Request $request, Application $app)
{
    $page = (int) $request->query->get('page', 1);
    $sortKey = $request->query->get('sort', 's.id');
    $direction = $request->query->get('direction', 'desc');

    /* Doctrine DBAL QueryBuilder */
    $qb = $app['db']->createQueryBuilder()
        ->select('s.*')
        ->from('sometable', 's')
        ->orderBy($sortKey, $direction);

    $pagination = $app['dezull.dbal_paginator']->paginate(
        $qb,
        $page,
        20 /* per page limit */
    );

    return $app['twig']->render('Foo/index.html.twig', array(
        'pagination' => $pagination,
    ));
}

4) To render the pagination in the template, (*6)

{{ dezull_dbal_pagination_render(pagination) }}

TODO

1) Remove dependency on KnpPaginatorBundle, (*7)

The Versions

11/10 2013

dev-master

9999999-dev https://github.com/dezull/DBALPaginatorServiceProvider

A Doctrine DBAL paginator provider for Silex, based on knp pager components and knp-paginator-bundle.

  Sources   Download

MIT

The Requires

 

by Dzul Nizam

silex dbal paginator paginator provider dbal paginator provider