亚洲乱码卡一卡二卡三永久-亚洲乱码一二三四区-亚洲乱码一区二区三区在线观看-亚洲伦理一区-成人在色线视频在线观看免费大全-成人在线91

Paginator分頁類   
namespace Tang\Pagination;
use Tang\I18n\II18n;
 
/**
 * 分頁實現
 * Class Paginator
 * @package Tang\Pagination
 */
class Paginator implements IPaginator
{
    private $total = 0;
    private $pageNumber = 20;
    private $maxPage = 0;
    private $nowPage = 0;
    /**
     * 語言包
     * @var II18n
     */
    private $II18n;
    public function setl18n(II18n $II18n)
    {
        $this->II18n = $II18n;
    }
    /**
     * 設置總量
     * @param $total
     * @return mixed
     */
    public function setTotal($total)
    {
        $total = (int) $total;
        $total < 0 && $total = 0;
        $this->total = $total;
    }
 
    /**
     * 設置每頁數量
     * @param $pageNumber
     * @return mixed
     */
    public function setPageNumber($pageNumber)
    {
        $pageNumber = (int)$pageNumber;
        $pageNumber < 1 && $pageNumber = 20;
        $this->pageNumber = $pageNumber;
    }
 
    /**
     * 獲取每頁數量
     * @return int
     */
    public function getPageNumber()
    {
        return $this->pageNumber;
    }
 
    /**
     * 獲取最大頁數
     * @return int
     */
    public function getMaxPage()
    {
        return $this->maxPage;
    }
 
    /**
     * 獲取當前頁
     * @return int
     */
    public function getNowPage()
    {
        return $this->nowPage;
    }
 
    /**
     * 獲取分頁數組
     * @param int $nowPage 當前頁
     * @param int $total 總數量
     * @param int $pageNumber 一頁數量
     * @throws NowPageLtMaxPageException
     * @return array
     */
    public function getPages($nowPage,$total = 0,$pageNumber = 0)
    {
        if ($total)
        {
            $this->setTotal($total);
        }
        if ($pageNumber)
        {
            $this->setPageNumber($pageNumber);
        }
        $nowPage = (int) $nowPage;
        $nowPage < 1 && $nowPage = 1;
        $this->nowPage = $nowPage;
        $maxPage = $this->maxPage = ceil($this->total / $this->pageNumber);
        if (!$maxPage)
        {
            return false;
        }
        if ($nowPage > $maxPage)
        {
            throw new NowPageLtMaxPageException('No more pages!',null,50013);
        }
        $pages = array();
        $pages[] = array('name' => $this->II18n->get('First page'),'page'=>1);
        if ($nowPage > 1)
        {
            $pages[] = array('name' => $this->II18n->get('Prev page'),'page'=>$nowPage-1);
        }
        if ($nowPage > 5)
        {
            for ($i = $nowPage - 5; $i < $nowPage; $i ++)
            {
                if ($i <= 0)
                    continue;
                $pages[] = array('name' => $i,'page'=>$i);
            }
            for ($i = 0; $i < 5; $i ++)
            {
                $p = $nowPage + $i;
                if ($p > $maxPage)
                {
                    break;
                }
                $pages[] = array('name' => $p,'page'=>$p);
            }
        } else
        {
            for ($i = 1; $i < 10; $i ++)
            {
                if ($i > $maxPage)
                {
                    break;
                }
                $pages[] = array('name' => $i,'page'=>$i);
            }
        }
        $nextPage = $nowPage + 1;
        if ($nowPage < $maxPage)
        {
            $pages[] = array('name' => $this->II18n->get('Next page'),'page'=>$nextPage);
        }
        $pages[] = array('name' => $this->II18n->get('End page'),'page'=>$maxPage);
        return $pages;
    }
}
 

IPaginator分頁接口

namespace Tang\Pagination;
use Tang\I18n\II18n;
use Tang\Interfaces\ISetConfig;
 
/**
 * 分頁接口
 * Interface IPaginator
 * @package Tang\Pagination
 */
interface IPaginator
{
    /**
     * 設置語言包
     * @param II18n $II18n
     * @return void
     */
    public function setl18n(II18n $II18n);
    /**
     * 設置總量
     * @param $total
     * @return void
     */
    public function setTotal($total);
 
    /**
     * 設置每頁數量
     * @param $pageNumber
     * @return void
     */
    public function setPageNumber($pageNumber);
 
    /**
     * 獲取每頁數量
     * @return int
     */
    public function getPageNumber();
 
    /**
     * 獲取最大頁數
     * @return int
     */
    public function getMaxPage();
 
    /**
     * 獲取當前頁
     * @return int
     */
    public function getNowPage();
 
    /**
     * 獲取分頁數組
     * 返回的結果數組為array(
     *       array('name'=>'第一頁','page' => 1),
     * array('name'=>'1','page' => 1),
     * array('name'=>'2','page' => 2),
     *      array('name'=>'下一頁','page' => 2)
     * )形式
     * @param int $nowPage 當前頁
     * @param int $total 總數量
     * @param int $pageNumber 一頁數量
     * @return array
     */
    public function getPages ($nowPage,$total = 0,$pageNumber = 0);
}

 

穩定

產品高可用性高并發

貼心

項目群及時溝通

專業

產品經理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽

堅持

10年專注高端品質開發
  • 返回頂部
主站蜘蛛池模板: 欧美色图综合网 | 麻豆精品成人免费国产片 | 日本aⅴ精品一区二区三区久久 | 久爱www成人网免费视频 | 在线精品播放 | 亚洲一区在线视频观看 | 欧美日一区二区三区 | 国产二三区 | 欧洲男女啪啪免费观看 | 人人爱国产 | 国产极品粉嫩 | 国产一区精品在线观看 | 国内精品一区二区三区 | 中文字幕制服丝袜 | 欧美日本综合一区二区三区 | 欧美色久 | 成人毛片免费在线观看 | 国产一区二区三区美女秒播 | 日干夜干天天干 | 九九碰| jizzjizz丝袜老师 | 亚洲444444在线观看 | 91精品国产自产在线观看高清 | 日韩精品欧美精品中文精品 | 伊人精品线视天天综合 | 欧美色爽| wwwxxx欧美| 日韩亚洲一区二区三区 | 外国xxx| 性视频一级 | 亚洲高清中文字幕一区二区三区 | 久久久久香蕉 | 狠狠燥 | 日本一区二区在线 | 在线观看国产免费高清不卡 | 在线播放国产色视频在线 | 久草小说 | 国产日韩欧美在线视频免费观看 | 欧美激情在线播放一区二区 | 国产一级特黄aa大片在线 | 99re九精品视频在线视频 |