rebolon / pager-component
简单的分页组件。它提供了一个简单的API来管理您的分页器。
dev-master
2013-01-10 18:56 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-13 09:46:52 UTC
README
这是一个简单的用于Symfony2的分页器
为什么你需要分页器?因为你有很多项目要在一页上显示。但是有两种可能性
- 你只想检索要显示的项目。在这种情况下,分页器必须能够显示这些项目并创建分页特性
- 你已从Web服务检索到大量的列表。在这种情况下,分页器必须只显示当前页的项目,并显示分页特性
对于第一种情况,我的分页器可以帮助你获取限制和偏移值,以便你只检索所需的数据。
特性
- 支持Twig模板(经典和Twitter Bootstrap模板)
- 易于自定义和扩展
安装
将命名空间添加到你的autoloader中的app/autoload.php文件
``` php
'Rebolon' => __DIR__.'/../src',
```
将PaginatorBundle添加到你的应用程序kernel中的app/AppKernel.php文件
``` php
new Rebolon\PagerBundle\RebolonPagerBundle(),
```
示例
你所需要知道的是分页器可能管理的项目数量(totalItem)。默认情况下,分页器内部有5个项目(1到5),并管理你想要显示的列表中的15个项目。因此,你可以使用容器简单使用分页器
``` php
$this->get('rebolon_pager.pager');
```
默认控制器中有一个示例,路由为rebolon/pager/test
你也可以为你的所有bundle配置自己的分页器,只需将以下内容添加到你的bundle的services.xml文件中
``` xml
<service id="mybundle.pager" class="%rebolon_pager.pager.class%">
<call method="setContainer">
<argument type="service" id="service_container" />
</call>
<call method="setSuffixName">
<argument>pagerForWS</argument>
</call>
<call method="setItemPerPage">
<argument>5</argument>
</call>
<call method="setMaxPagerItem">
<argument>3</argument>
</call>
</service>
```
要获取偏移/限制值,请使用PagerInterface中指定的方法
- 首先,你需要对要显示的列表执行count(*)。然后将值提供给分页器的init方法。
- 使用getOffset()和getItemPerPageParam()方法检索查询的偏移和限制值
在模板内部,分页器为你提供了创建显示分页器所需的一切
- buildPager将创建分页项目列表(first/prev/X...Y/next/last)。它返回一个关联数组数组,键为uri/label/title。
- isCurrentPage($pageId)允许你识别你正在循环的项目是否是currentPage
- isToDisplay($itemIndex)允许你了解列表中的项目是否必须显示 Have a look at the PagerTplInterface for others methods.
这里有几个Twig模板来展示分页器的可能性
- standard是一个经典分页器
- twt-bs是一个使用Bootstrap Twitter CSS框架的分页器
- test和tewtWithLargeList用于bundle的示例控制器。它们是关于README开头提到的第一和第二种情况的示例
享受它!