• <kbd id="qyk40"></kbd>
  • <strike id="qyk40"></strike><samp id="qyk40"><pre id="qyk40"></pre></samp>
    Paginator分頁類   
    namespace Tang\Pagination;
    use Tang\I18n\II18n;
     
    /**
     * 分頁實現(xiàn)
     * 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;
        }
     
        /**
         * 設置每頁數(shù)量
         * @param $pageNumber
         * @return mixed
         */
        public function setPageNumber($pageNumber)
        {
            $pageNumber = (int)$pageNumber;
            $pageNumber < 1 && $pageNumber = 20;
            $this->pageNumber = $pageNumber;
        }
     
        /**
         * 獲取每頁數(shù)量
         * @return int
         */
        public function getPageNumber()
        {
            return $this->pageNumber;
        }
     
        /**
         * 獲取最大頁數(shù)
         * @return int
         */
        public function getMaxPage()
        {
            return $this->maxPage;
        }
     
        /**
         * 獲取當前頁
         * @return int
         */
        public function getNowPage()
        {
            return $this->nowPage;
        }
     
        /**
         * 獲取分頁數(shù)組
         * @param int $nowPage 當前頁
         * @param int $total 總數(shù)量
         * @param int $pageNumber 一頁數(shù)量
         * @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);
     
        /**
         * 設置每頁數(shù)量
         * @param $pageNumber
         * @return void
         */
        public function setPageNumber($pageNumber);
     
        /**
         * 獲取每頁數(shù)量
         * @return int
         */
        public function getPageNumber();
     
        /**
         * 獲取最大頁數(shù)
         * @return int
         */
        public function getMaxPage();
     
        /**
         * 獲取當前頁
         * @return int
         */
        public function getNowPage();
     
        /**
         * 獲取分頁數(shù)組
         * 返回的結果數(shù)組為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 總數(shù)量
         * @param int $pageNumber 一頁數(shù)量
         * @return array
         */
        public function getPages ($nowPage,$total = 0,$pageNumber = 0);
    }

     

    穩(wěn)定

    產(chǎn)品高可用性高并發(fā)

    貼心

    項目群及時溝通

    專業(yè)

    產(chǎn)品經(jīng)理1v1支持

    快速

    MVP模式小步快跑

    承諾

    我們選擇聲譽

    堅持

    10年專注高端品質開發(fā)
    • 返回頂部
    久久精品国产亚洲AV未满十八| 手机国产乱子伦精品视频| 日韩成人无码中文字幕| 宅男宅女精品国产av天堂| 91麻豆精品国产自产在线观看亚洲| 精品日韩一区二区| 亚洲日韩国产精品乱| 国产精品无码一本二本三本色| 亚洲国产精品自在自线观看| 国产精品国色综合久久| 中文国产成人久久精品小说| 国产精品亚洲综合天堂夜夜| 欧美成人精品三级网站下载| 国产精品久久久久久久久鸭| 亚洲av专区无码观看精品天堂| 久久精品毛片免费观看| 久久久不卡国产精品一区二区| 国产精品视频免费一区二区三区 | 老司机在线精品视频| 91精品啪在线观看国产电影| 久久国产亚洲精品无码| 99re6这里只有精品视频 | 亚洲精品美女久久久久| 国产精品玖玖美女张开腿让男人桶爽免费看 | 91精品国产手机| 久久国产精品77777| 99视频在线精品免费| 99国产精品视频免费观看| 亚洲第一精品在线视频| 老司机亚洲精品影院无码| 久久久久人妻精品一区三寸蜜桃| 亚洲国产av无码精品| 国产精品美女一区二区| 在线观看国产精品麻豆| 日韩精品电影在线| 国产精品高清久久久久久久| 日韩久久精品一区二区三区| 国产精品免费看久久久久| 国产成人精品一区二三区| 日韩乱码人妻无码中文视频| 亚洲处破女AV日韩精品|