# 分页器(Paginator)
## 简介
这个组件用于记录分页信息,并且可以生成分页HTML代码。同时,它也支持迭代,可以直接用于foreach。
## 实现原理
分页器与数据库没有直接关系,但是数据库Query类中有一个方法paginate,可以生成分页器。分页器记录当前页数据、当前页号、每页条数、总条数(通过总条数/每页条数来计算总页数)。通过实现迭代器,可以直接用于foreach遍历,无需先getData再进行遍历。调用view方法,会计算应该显示的页数,并生成HTML链接页数导航(样式需要自己实现)。
## 用法
### 创建分页器
需要提供4个参数,即$data, $current, $perPage, $total
分别是数据、当前页、每页条数、总条数
### 获取分页信息
自己看!
### hasPrev/hasNext
判断是否当前页还有上一页/下一页
### view
生成HTML链接页数导航并显示。
因为技术不佳,只有这里的代码显得非常混乱(加入了各种各样乱七八糟的条件),思路清晰的小伙伴不妨尝试重写一下并贡献一下(Pull Request)。
注:新版重写了分页生成逻辑,目前思路比较清晰,不过不一定是最优解。
### 迭代
直接使用foreach遍历