*/ final class PaginationHelper extends Helper { public function __construct( private readonly Processor $processor, private readonly PhpEngine $templating ) { } /** * Renders the pagination template. * * @param \Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination $pagination * @param array $queryParams * @param array $viewParams */ public function render(SlidingPaginationInterface $pagination, ?string $template = null, array $queryParams = [], array $viewParams = []): string { return $this->templating->render( $template ?: $pagination->getTemplate(), $this->processor->render($pagination, $queryParams, $viewParams) ); } /** * Create a sort url for the field named $title * and identified by $key which consists of * alias and field. $options holds all link * parameters like "alt, class" and so on. * * $key example: "article.title" * * @param \Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination $pagination * @param string|array $key * @param array $options * @param array $params */ public function sortable(SlidingPaginationInterface $pagination, string $title, $key, array $options = [], array $params = [], ?string $template = null): string { return $this->templating->render( $template ?: $pagination->getSortableTemplate(), $this->processor->sortable($pagination, $title, $key, $options, $params) ); } /** * Create a filter url for the field named $title * and identified by $key which consists of * alias and field. $options holds all link * parameters like "alt, class" and so on. * * $key example: "article.title" * * @param \Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination $pagination * @param array $fields * @param array $options * @param array $params */ public function filter(SlidingPaginationInterface $pagination, array $fields, array $options = [], array $params = [], ?string $template = null): string { return $this->templating->render( $template ?: $pagination->getFiltrationTemplate(), $this->processor->filter($pagination, $fields, $options, $params) ); } /** * Get helper name. */ public function getName(): string { return 'knp_pagination'; } }