介绍
介绍
今天福哥带着大家给TFPHP框架增加一个新对象——TFDataPage,使用这个对象可以用来计算功能列表的分页参数。
分页是一项技术,用来对功能列表里面的众多条数据记录进行分页处理。其原理是这样的,首先全部数据记录数量就是记录总数(Total);将全部数据记录根据一个固定数字进行等分处理,这个固定数字就是页长度(Page size);等分后得到份总数就是页总数(Page total);我们选取其中一份用来查看,这一份的份数就是页码(Page number);而这一份的第一条记录就是搜寻开始位置(Seek begin),这一份里面的数据总条数就是提取长度(Fetch numbers)。
那么诸如:记录总数、页长度、页总数、页码、搜寻开始、提取数量就是分页技术需要的参数了,使用这些参数就可以将一个功能列表的数据分隔成一页一页的,用户可以像翻书一样的浏览我的功能列表了。
TFDataPage
路径
TFPHP\Database\SQL\TFDataPage
代码
a
private function a(){ $this->d=ceil($this->b/$this->c); if($this->e<=0){ $this->e=1; } if($this->e>$this->d){ $this->e=$this->d; } $this->f=($this->e-1)*$this->c; $this->g=$this->c; if($this->f+$this->g>$this->b){ $this->g=$this->b-$this->f; } }
makeTeamlinks
public function makeTeamlinks(int $teamLength){ $this->parseTeamlinks($teamLength); }
b
private function b(int $a){ $b=intval($a/2); $c=$this->e-$b; $d=$this->e+$b; if($c<=0){ $c=1; } if($d>$this->d){ $d=$this->d; } $this->h=array('low'=>$c,'high'=>$d,); }
toArray
public function toArray():array{ $argv=array('total'=>$this->b,'pageSize'=>$this->c,'pageTotal'=>$this->d,'pageNum'=>$this->e,'seekBegin'=>$this->f,'fetchNums'=>$this->g,); if($this->h!==null){ $argv['pageTeamArgv']=$this->h; } return $argv; }
讲解
TFDataPage
a
计算分页相关参数,包括分页数量、页码、搜寻开始和提取数量等等
makeTeamlinks
开始创建分组链接模式的分页参数
b
计算分组链接模式的分页参数,就是将全部页码等分成若干组,每个个页码一定所属其中一个组。这个方法就是要计算这个组的起始页码和结束页码,用来在页面上显示当前页码临近的几个页面供用户选择
toArray
将分页参数转成数组导出来
使用
代码
$total = 12345; $pageSize = 10; $pageNum = 10; $page = new TFDataPage($this->tfphp, $total, $pageSize, $pageNum); $page->makeTeamlinks(6); $pageArr = $page->toArray(); var_dump($pageArr); die;
效果
总结
今天发给带着童鞋们给TFPHP框架添加了TFDataPage对象,使用这个对象就可以制作功能模块的数据列表的分页功能了。