Pagerfanta

Documentation

Version Not Yet Released

You are viewing the documentation for the 5.x branch of the Pagerfanta package which has not yet been released. Be aware that the API for this version may change before release.

Templates

Pagerfanta defines Pagerfanta\View\Template\TemplateInterface which is an abstraction layer for building the markup for different sections of a pagination list.

The interface requires several methods to be implemented:

  • setRouteGenerator: Injects the route generator to use while rendering the template
  • setOptions: Sets options for the template
  • container: Generates the wrapping container for the pagination list
  • page: Generates the markup for a single page in the pagination list
  • pageWithText: Generates the markup for a single page with the specified text label
  • previousDisabled: Generates the markup for the previous page button in the disabled state
  • previousEnabled: Generates the markup for the previous page button in the enabled state
  • nextDisabled: Generates the markup for the next page button in the disabled state
  • nextEnabled: Generates the markup for the next page button in the enabled state
  • first: Generates the markup for the first page button
  • last: Generates the markup for the last page button
  • current: Generates the markup for the current page button
  • separator: Generates the markup for a separator button, used to represent a break in a list of pages (i.e. 1, 2, ..., 6, 7)
<?php

namespace Pagerfanta\View\Template;

use Pagerfanta\RouteGenerator\RouteGeneratorInterface;

interface TemplateInterface
{
    /**
     * Sets the route generator used while rendering the template.
     *
     * @param callable|RouteGeneratorInterface $routeGenerator
     */
    public function setRouteGenerator(callable $routeGenerator): void;

    /**
     * Sets the options for the template, overwriting keys that were previously set.
     */
    public function setOptions(array $options): void;

    /**
     * Renders the container for the pagination.
     *
     * The %pages% placeholder will be replaced by the rendering of pages.
     */
    public function container(): string;

    /**
     * Renders a given page.
     */
    public function page(int $page): string;

    /**
     * Renders a given page with a specified text.
     */
    public function pageWithText(int $page, string $text, ?string $rel = null): string;

    /**
     * Renders the disabled state of the previous page.
     */
    public function previousDisabled(): string;

    /**
     * Renders the enabled state of the previous page.
     */
    public function previousEnabled(int $page): string;

    /**
     * Renders the disabled state of the next page.
     */
    public function nextDisabled(): string;

    /**
     * Renders the enabled state of the next page.
     */
    public function nextEnabled(int $page): string;

    /**
     * Renders the first page.
     */
    public function first(): string;

    /**
     * Renders the last page.
     */
    public function last(int $page): string;

    /**
     * Renders the current page.
     */
    public function current(int $page): string;

    /**
     * Renders the separator between pages.
     */
    public function separator(): string;
}