dotzero/ypaginator

此包已被放弃且不再维护。没有建议的替代包。

一个轻量级的PHP分页器,无数据库依赖,用于生成类似Yandex风格的分页控件

0.7 2016-04-13 18:42 UTC

This package is auto-updated.

Last update: 2022-06-04 08:40:12 UTC


README

Build Status Latest Stable Version License

一个轻量级的PHP分页器,无数据库依赖,用于生成类似Yandex风格的分页控件。

特性

  • 显示“第一页”和“最后一页”链接
  • 显示“当前页”和“相邻页”链接
  • 其余链接用省略号代替

外观

<< previous | next >>
|1| ... |5||6||7| ... |100|

用法

$total = 100; // Total items
$perpage = 10; // Items per page
$current = 5; // Current page
$neighbours = 2; // Neighbours links beside current page

$y = new \dotzero\YPaginator($total, $perpage, $current);

$paginator = $y
    ->setNeighbours($neighbours)
    ->setUrlMask('#num#')
    ->setUrlTemplate('/foo/page/#num#')
    ->getPaginator();

print_r($paginator);

输出如下

[
    "prev" => ["name" => 4,"url" => "/foo/page/4","current" => false], // Previous
    "pages" => [
        ["name" => 1,"url" => "/foo/page/1","current" => false], // First
        ["name" => "...","url" => "/foo/page/2","current" => false],
        ["name" => 3,"url" => "/foo/page/3","current" => false], // Neighbour
        ["name" => 4,"url" => "/foo/page/4","current" => false], // Neighbour
        ["name" => 5,"url" => "/foo/page/5","current" => true],  // Current
        ["name" => 6,"url" => "/foo/page/6","current" => false], // Neighbour
        ["name" => 7,"url" => "/foo/page/7","current" => false], // Neighbour
        ["name" => "...","url" => "/foo/page/8","current" => false],
        ["name" => 10,"url" => "/foo/page/10","current" => false] // Last
    ],
    "next" => ["name" => 6,"url" => "/foo/page/6","current" => false] // Next
];

安装

通过Composer

$ composer require dotzero/ypaginator

不通过Composer

使用以下命令克隆项目

$ git clone https://github.com/dotzero/ypaginator-php

然后使用以下命令包含源文件

require_once("ypaginator-php/src/YPaginator.php");

测试

首先安装依赖项,然后可以运行

$ vendor/bin/phpunit

许可

许可协议:MIT许可: https://open-source.org.cn/licenses/mit-license.php