anh / paginator
分页库
v0.2.2
2015-04-27 10:44 UTC
Requires
- php: >=5.3.9
Requires (Dev)
- doctrine/orm: ~2.3
- phpspec/phpspec: ~2.2,<2.3
This package is auto-updated.
Last update: 2024-09-06 10:01:15 UTC
README
安装
$ php composer.phar require 'anh/paginator:0.2.*'
用法
创建分页器并使用数据、页面编号和每页元素数量调用它的paginate()
方法。它将找到合适的适配器并返回填充了分页数据的Page
实例,可以直接用于foreach
循环。您还可以传递手动创建的适配器而不是数据。
<?php use Anh\Paginator\Paginator; $query = /* ORM Query or QueryBuilder for fetching users */; $paginator = new Paginator(); $users = $paginator->paginate($query, 1, 10); foreach ($users as $user) { // do something with user }
如果您需要将选项传递给适配器,请将它们作为第四个参数传递给paginate()
。请注意,每个适配器都有自己的选项。
<?php use Anh\Paginator\Paginator; use Anh\Paginator\Adapter\ArrayAdapter; $data = array(/* elements */); $paginator = new Paginator(); $elements = $paginator->paginate($data, 3, 20, array('preserveKeys' => true)); foreach ($elements as $key => $element) { // do something with element }
您可以创建自定义适配器并将它们添加到AdapterResolver
。所有适配器都必须实现AdapterInterface
接口。
<?php use Anh\Paginator\Paginator; use Anh\Paginator\AdapterResolver; $adapterResolver = new AdapterResolver(); $adapterResolver->addAdapter('Some\Custom\Adapter1'); $adapterResolver->addAdapter('Some\Custom\Adapter2'); $paginator = new Paginator($adapterResolver); $elements = $paginator->paginate($data, $pageNumber, $elementsPerPage); foreach ($elements as $element) { // do something with element }
渲染
<?php use Anh\Paginator\Paginator; use Anh\Paginator\View\AdaptiveView; $paginator = new Paginator(); $posts = $paginator->paginate(/* ... */); $view = new AdaptiveView(); $view->setTemplates(array(/* templates */)); $view->setOptions(array(/* options */)); echo $view->render($posts, '/some/url/page-%page%', array(/* options */));
有关模板和选项的完整列表,请参阅源代码。您还可以使用resource/pagination.css
对分页器进行样式设计。它基于foundation zurb的分页。
可用的适配器
- EmptyDataAdapter
- ArrayAdapter
- DoctrineOrmAdapter
版本控制
库使用语义版本控制。
许可
MIT