同福

做个web框架(23)——TFDataPage分页技术的使用【20210106】

介绍

介绍

今天福哥带着大家给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;

效果

8b3f234d82a238e0.jpg

总结

今天发给带着童鞋们给TFPHP框架添加了TFDataPage对象,使用这个对象就可以制作功能模块的数据列表的分页功能了。