1

谁能推荐一个好的PHP分页类?

我搜索了谷歌,但没有看到任何符合我要求的东西。我决定先在这里检查,而不是“自己动手”(几乎肯定是重新发明轮子)。

首先是一些背景:

我正在 Ubuntu 9.10 上使用带有 Propel ORM 的 Symfony 1.3.2 开发一个网站。我目前正在使用 Propel 寻呼机,这没问题,但我最近开始使用 memcache 来加快速度。此时,Propel 寻呼机用处不大,因为它(AFAIK)仅适用于 Propel 对象。

我需要的是一个满足以下要求的类

  1. 具有干净的接口,关注点分离,因此从数据源(例如数据库)检索记录的逻辑封装在一个类(或至少一个单独的文件)中。

  2. 可以处理对象数组

  3. 提供分页链接,只获取当前页面所需的数据。此外,如果页面链接太多,分页应该“拆分”可用的页面链接。例如,如果可能有 1000 个可能的页面链接,则显示的页面应该类似于 FIRST 2,3 ....999 LAST

  4. 可以返回被查询的表中所有记录的条数,这样下面的链接就可以得到FIRST,LAST(这个需求其实在之前的需求中已经涵盖了——不过我只是想再强调一下)。

任何人都可以推荐这样的图书馆,如果他们过去成功使用过它吗?

或者,某些人可能已经“入侵”(例如源自)当前的 Propel 寻呼机,以使其完成我列出的事情 - 请告诉我。

4

3 回答 3

2

不确定这是否符合要求,但 sfPropelPager 和 sfDoctrinePager 都从sfPager类扩展而来,该类提供向前/向后运动和分页等。您应该能够直接使用 sfPager,或者以与 Doctrine 相同的方式从它扩展和 Propel 使用您的元素数组来提供分页。

通常,由于这看起来是一个“非标准”用例,Symfony 网站上关于它的文档为零,除了 API 文档,但 API 文档看起来非常全面,我相信 Doctrine/Propel 示例将能够引导您朝着正确的方向前进!

于 2010-03-17T11:35:54.887 回答
0

我一直在使用并推荐PEAR::Pager包,它能够满足您的需求。

于 2010-03-17T10:50:46.953 回答
0

您需要深入了解 sfPropelPager(或直接 sfPager)代码,了解其内部工作原理、使用动态数据的位置以及如何使其与 memcache 一起使用。

我不知道 memecached 但你不能直接缓存推进记录吗?(我知道它们很大:D)

我逐点回答:

1:sfPager 与数据库无关,因为它被 sfDoctrinePager 和 sfPropelPager 使用,您可以将它用于工作和测试的基础。

2:sfPager 应该与数组一起使用,其中引用的模型类属性不在任何地方使用。参考

3 : 提供分页链接反对关注点分离,它对对象进行分页,链接在其他地方生成(查看文件、帮助程序等)。您可以根据需要显示它们,而无需修改寻呼机类或其后代

4:第一次和最后一次访问由 sfPager 类提供

我知道我听起来像 symfony 传教士,但这是我们通常使用这种框架的方式。正如您所写,不要重新发明轮子!

于 2010-03-17T12:27:33.670 回答