tangframework分页是注册了服务,用户只要实现ipaginator接口,就可以使用自定义的分页类, 无 namespace tang\pagination;use tang\i18n\ii18n;/** * 分页实现 * class paginator * @package tang\pagination */class paginator implements ipaginator{ priv
tangframework分页是注册了服务,用户只要实现ipaginator接口,就可以使用自定义的分页类,    		    			    																			    		    				    			        		            	            	            	            	            	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 total = $total;    }    /**     * 设置每页数量     * @param $pagenumber     * @return mixed     */    public function setpagenumber($pagenumber)    {        $pagenumber = (int)$pagenumber;        $pagenumber 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 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 $i);            }            for ($i = 0; $i  $maxpage)                {                    break;                }                $pages[] = array('name' => $p,'page'=>$p);            }        } else        {            for ($i = 1; $i  $maxpage)                {                    break;                }                $pages[] = array('name' => $i,'page'=>$i);            }        }        $nextpage = $nowpage + 1;        if ($nowpage  $this->ii18n->get('next page'),'page'=>$nextpage);        }        $pages[] = array('name' => $this->ii18n->get('end page'),'page'=>$maxpage);        return $pages;    }}
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);}
   
 
   