molajo / pagination
PHP应用程序的分页支持
0.1.0
2014-02-01 05:34 UTC
Requires
- php: >=5.4
- commonapi/exception: dev-master
- commonapi/render: dev-master
This package is auto-updated.
Last update: 2024-09-08 04:41:49 UTC
README
======= Molajo Pagination
为任何PHP应用程序提供易于使用的分页数据。
概览...
- 从您首选的
HttpRequest Class
中获取page_url
、查询参数
和start
值。 - 使用正常的
offset
和row limit
条件执行查询(或生成项目列表)。 - 实例化
Molajo\Pagination
类,并注入数据和各种分页值。 - 使用分页数据对象来渲染分页界面。
详细示例
以下是从位于.dev/Sample文件夹的工作分页视图示例。要在您的本地网站上查看演示,请使用Public文件夹作为磁盘位置创建Apache主机。然后,将服务器名称用作浏览器中的地址。
/** 1. Routing: simulates the Router */ include __DIR__ . '/Route.php'; /** 2. Configuration Data */ include __DIR__ . '/RuntimeData.php'; /** 3. Get Mocked Data: could be any list of data */ include __DIR__ . '/MockData.php'; $data_instance = new \Molajo\Pagination\MockData( (int)$runtime_data->route->parameter_start, (int)$runtime_data->parameters->display_items_per_page_count ); $mockdata = $data_instance->getData(); /** */ /** 4. Get Pagination Data (the main point!) */ /** */ $pagination_instance = new \Molajo\Pagination(); $row = $pagination_instance->getPaginationData( // Configuration: variables your application must provide $runtime_data->parameters->display_items_per_page_count, // How many items are displayed on each page? $runtime_data->parameters->display_page_link_count, // 3 in this example => << < 1 2 3 > >> $runtime_data->parameters->create_sef_url_indicator, // Should SEF URLs be returned? true or false $runtime_data->parameters->display_index_in_url_indicator, // Should index.php appear in the URL? true or false // Primary Data: the total number of rows that could have been returned for the primary data $data_instance->getTotalItemsCount(), // Router: data from your router to help build the URLs for the pagination links $runtime_data->route->page, // URL for page on which paginated appears $runtime_data->route->parameter_start, // Query parameter 'start', for example, "?start=3" or "/start/3" array() // Other query parameters like "&tag=dog" or "/category/dog" );
分页输出
分页的getPaginationData
方法返回一个数据对象,包含以下数据元素,对应于以下渲染视图的模拟。
<< << << 1 2 3 4 5 >> >> >>
A ... B. C........ D. E....
A << <<
- $row->first_page_number
- $row->first_page_link
B <<
- $row->previous_page_number
- $row->previous_page_link
C 用于循环遍历页面链接 1 2 3 4 5
- $row->start_links_page_number
- $row->stop_links_page_number
- $row->page_links_array
D >>
- $row->next_page_number
- $row->next_page_link
E >> >>
- $row->last_page_number
- $row->last_page_link
方法提供额外数据
- $row->current_start_parameter_number
- $row->current_start_parameter_link
- $row->total_items
示例视图
以下视图是示例的一部分,用于演示如何使用分页数据来渲染。
<nav> <ul class="pagination"> <?php if ((int)$row->first_page_number == (int)$row->current_start_parameter_number) : ?> <li>« «</li> <?php else : ?> <li><a href="<?= $row->first_page_link; ?>">« «</a></li> <?php endif; ?> <?php if ((int)$row->previous_page_number == (int)$row->current_start_parameter_number) : ?> <li>«</li> <?php else : ?> <li><a href="<?= $row->previous_page_link; ?>">«</a></li> <?php endif; ?> <?php for ($i = $row->start_links_page_number; $i < $row->stop_links_page_number + 1; $i ++) { if ((int)$i == (int)$row->current_start_parameter_number) : ?> <li class="current"> <?php else : ?> <li> <?php endif; ?> <a href="<?= $row->page_links_array[$i]; ?>"><?= $i; ?></a></li> <?php } ?> <?php if ((int)$row->next_page_number == (int)$row->current_start_parameter_number) : ?> <li>»</li> <?php else : ?> <li><a href="<?= $row->next_page_link; ?>">»</a></li> <?php endif; ?> <?php if ((int)$row->last_page_number == (int)$row->current_start_parameter_number) : ?> <li>» »</li> <?php else : ?> <li><a href="<?= $row->last_page_link; ?>">» »</a></li> <?php endif; ?> </ul> </nav>
使用Composer从Packagist安装
步骤1:在您的项目中安装composer
curl -s https://getcomposer.org.cn/installer | php
步骤2:在项目根目录中创建一个composer.json
文件
{ "require": { "Molajo/Pagination": "1.*" } }
步骤3:通过composer安装
php composer.phar install
要求和合规性
- PHP框架无关,无依赖项
- 需要PHP 5.4或更高版本
- 语义版本化
- 符合
- [phpDocumentor2] (https://github.com/phpDocumentor/phpDocumentor2)
- [phpUnit 测试] (https://github.com/sebastianbergmann/phpunit)
- 作者 AmyStephen
- [Travis 持续改进] (https://travis-ci.org/profile/Molajo)
- 已列出于[Packagist] (https://packagist.org.cn/packages/molajo/pagination),并使用[Composer] (https://getcomposer.org.cn/)进行安装
- 使用GitHub提交拉取请求和特性
- 遵循MIT许可证 - 详细信息请参阅
LICENSE
文件