vinyvicente / silex-knp-paginator
Paginator Provider to Silex 2.0
Installs: 80 078
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: 5.6 || >=7.0
- knplabs/knp-paginator-bundle: ^2.5
- roave/security-advisories: dev-master
- silex/silex: ^2.0
- symfony/translation: ^3.2
- symfony/twig-bridge: ^3.2
- twig/extensions: ^1.4
- twig/twig: ^2.0
This package is auto-updated.
Last update: 2024-12-08 07:54:49 UTC
README
Plugin KNP Paginator to Silex 2.0
Dependencies
- PHP 7+
- Silex 2.0+
- Twig 2.0+
How to Use
Based on Knp Pagination Bundle
See more: Docs
Integrating with Silex below
require 'vendor/autoload.php'; 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();