- 浏览: 835796 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
xieye:
jetty插件有好几个版本,1.6,1.7,1.8
我选的是用 ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
还有,
注:第2部分时,需要先安装jetty,我自己在安装过程 ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
说明一下:实际使用中,导入时我并没有错误。2、我把eclips ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
其实还是有一些先决条件的。1是外部环境,2是进步是阶段性的(意 ...
(转载文章)如何愉悦起来:一位精神治疗师的见解 -
mandy_yanzi:
我都已经饿7天了坚持为了我的衣衣
身体健康的问题
zend的paginator组件旨在提供一个通用的分页模块供php项目使用。
经源码分析,其提供一个类供继承Zend_Paginator_Adapter_DbSelect
需要重写count方法,和getItems($offset, $itemCountPerPage)方法。
分页的基本原理是查两遍,先查总数,再查某一页的数据。在一些需要并发较大程序的场合,可以在count函数中加入缓存机制。
在第一个示例中,显示了最简单的情况。
但是,事实上,这个最简单的情况组件是做了处理的,自动加上了limit,所以传入的select对象中不应有limit,组件对该select对象做解析,分析出从哪里截断等,所以不如下面的示例2和示例3那样,干脆都由自己定义好,
第二个示例展示了使用sql做查询的情况,此时必须写一个查询类充当适配器。
提供的附件中是
class SqlDemo extends Zend_Paginator_Adapter_DbSelect
该类必须有count方法和getItem方法的实现,就是用limit,很简单
第三个示例展示了使用select做查询的情况。此时,count方法可以固定,所以加了一个类。
好处是可以充分使用select的强大组合功能
在使用了分页组件后,分页模板中的各个属性都由paginator定义好了,这就是好处,能统一接口。
这是一个smarty模板文件
paginator_demo.tpl
以下是demo.php
经源码分析,其提供一个类供继承Zend_Paginator_Adapter_DbSelect
需要重写count方法,和getItems($offset, $itemCountPerPage)方法。
分页的基本原理是查两遍,先查总数,再查某一页的数据。在一些需要并发较大程序的场合,可以在count函数中加入缓存机制。
在第一个示例中,显示了最简单的情况。
但是,事实上,这个最简单的情况组件是做了处理的,自动加上了limit,所以传入的select对象中不应有limit,组件对该select对象做解析,分析出从哪里截断等,所以不如下面的示例2和示例3那样,干脆都由自己定义好,
第二个示例展示了使用sql做查询的情况,此时必须写一个查询类充当适配器。
提供的附件中是
class SqlDemo extends Zend_Paginator_Adapter_DbSelect
该类必须有count方法和getItem方法的实现,就是用limit,很简单
第三个示例展示了使用select做查询的情况。此时,count方法可以固定,所以加了一个类。
好处是可以充分使用select的强大组合功能
在使用了分页组件后,分页模板中的各个属性都由paginator定义好了,这就是好处,能统一接口。
这是一个smarty模板文件
paginator_demo.tpl
{if $pageinfo->totalItemCount } <div class="paginationControl"> <!-- Previous page link --> { if $pageinfo->previous } <a href="{$urlhelp->url($pageinfo->previous)}"> < Previous </a> | {else} <span class="disabled">< Previous</span> | {/if} {foreach from=$pageinfo->pagesInRange item=page } {if ($page != $pageinfo->current)} <a href="{$urlhelp->url($page)}">{$page}</a> | {else} {$page} | {/if} {/foreach} {if $pageinfo->next} <a href="{$urlhelp->url($pageinfo->next)}"> Next > </a> {else} <span class="disabled">Next ></span> {/if} </div> {/if}
以下是demo.php
<?php /** * 加载一些公共类,如db对象,也要加载zend的类自动载入方法, 该公共类需要自己写 * * 这只是一个代码示例,运行还需要smarty和zend环境 * * 还建用户表member * 字段 * id 自增主键 * name 用户名 * member_type_id 用户类型id * */ include_once('public.php'); //定义smarty对象 $smarty = new Smarty(); // 需要先加载smarty //定义一个url类,用于在分页html中显示页码的链接 class url_help{ public function url($page){ return '/command/paginator_demo/1.php?page=' . intval($page); } } $url_obj = new url_help(); function echobr(){ echo "<br>--------------------------------------------------------------------------"; } echo "演示zend组件Pagintator的用法" . $_SERVER['REQUEST_URI']; /** * 用法一,最简单,直接用select对象 */ echo "<br>用法一,最简单,直接用select对象,"; $db = Sys::getdb(); $select = $db->select(); $select->from('member','*') ->order('id desc'); $paginator = Zend_Paginator::factory($select); $paginator->setCurrentPageNumber(isset($_REQUEST['page']) ? $_REQUEST['page'] : 2); //设置当前页数2 $paginator->setItemCountPerPage(2); //设置每页的条数 $paginator->setPageRange(5); //设置显示几个链接 //echo $paginator->count(); $arr = $paginator->getIterator(); //赋值 $smarty->assign("pageinfo",$paginator->getPages()); //默认Sliding $smarty->assign("urlhelp",$url_obj); //引用模板文件 $smarty->display('paginator_demo.tpl'); var_dump($arr); echobr(); echobr(); /** * 用法二,继承性质的使用,与select类无关,直接使用sql语句 */ echo "<br>用法二,继承性质的使用,与select类无关,直接使用sql语句"; $adapter = new SqlDemo(); //定义适配器 $paginator = new Zend_Paginator($adapter); $paginator->setCurrentPageNumber(isset($_REQUEST['page']) ? $_REQUEST['page'] : 2); //设置当前页数 $paginator->setItemCountPerPage(3); //设置每页的条数 $paginator->setPageRange(4); //设置显示几个链接 $arr = $paginator->getIterator(); //赋值 $smarty->assign("pageinfo",$paginator->getPages()); //默认Sliding $smarty->assign("urlhelp",$url_obj); //引用模板文件 $smarty->display('paginator_demo.tpl'); var_dump($arr); echobr(); echobr(); /** * 用法三,继承性质的使用,与select类无关,直接使用sql语句 */ echo "<br>用法三,继承性质的使用,使用select类"; $adapter = new MemberDemo(); //定义适配器 $paginator = new Zend_Paginator($adapter); $paginator->setCurrentPageNumber(isset($_REQUEST['page']) ? $_REQUEST['page'] : 2); //设置当前页数 $paginator->setItemCountPerPage(3); //设置每页的条数 $paginator->setPageRange(6); //设置显示几个链接 $arr = $paginator->getIterator(); echo "<br>总页数". $paginator->count(); //赋值 $smarty->assign("pageinfo",$paginator->getPages()); //默认Sliding $smarty->assign("urlhelp",$url_obj); //引用模板文件 $smarty->display('paginator_demo.tpl'); var_dump($arr); echobr(); echobr(); exit; ?>
- paginator.zip (3.7 KB)
- 下载次数: 57
发表评论
-
召唤神龙 - 安装 centos 8, php 8, mysql 8, laravel 8 的整套 php 运行环境
2020-11-27 16:26 715本文编写时间:2020-11-27 传说集齐龙珠可以召唤神 ... -
centos8 使用阿里镜像快速安装php7.4套件
2020-11-15 00:48 862centos8 使用阿里镜像快速安装php7.4套件 本文只 ... -
centos7 使用阿里镜像快速安装php7.4套件
2020-11-15 00:32 1261本文只考虑centos7 今日 2020-11-16 rem ... -
composer常用命令
2020-11-05 14:46 1488列出当前全局配置 composer config -l -g ... -
期待centos8+php8 + mysql8 + laravel8,8888
2020-10-29 19:24 528期待centos8+php8 + mysql8 目前主要使用 ... -
ubuntu 安装 php7.4以及各类插件
2020-10-24 13:20 1136ubuntu 安装 php7.4以及各类插件 安装系统 最近 ... -
宝塔定义站点
2020-02-24 10:41 2宝塔定义站点。 1111111111111111111111 ... -
让php-fpm以root账号运行
2020-02-19 21:41 828一般来说,我们没有这种需求,但是当需要时, 可以让php-fp ... -
将代码部署到coding.net
2020-01-10 14:20 653coding.net 是一个git仓库,有免费有收费。 首先 ... -
php部署工具deployer技巧 - vendor目录创建
2020-01-06 12:06 916deployer是个好东西,可是每次都composer ,其实 ... -
自定义redis多个实例
2020-01-04 01:17 651假如多个项目部署到同一台服务器,有时会被redis的各项目前缀 ... -
推荐使用php的部署工具 deployer
2020-01-03 16:48 926php部署代码可以使用 https://deployer.or ... -
使用composer 类库 cachetool 清除opcache 的缓存
2020-01-03 16:38 969php的生产服务器上,需要把opche打开。 但有时,会被缓 ... -
laravel容器学习体会
2019-12-31 15:11 679根据文档与实测结果 假设我在app下建一个Services目 ... -
phalcon 自定义超强日志类
2019-12-18 10:00 835phalcon自带的日志文件类,有两个麻烦之处。 1、路径不能 ... -
自定义后台的使用
2019-12-18 05:22 428如果自己写后台,保存用户的表单请求值 所有的情况如下: 1 ... -
phalcon 自定义事件使用的多种方式
2019-12-16 20:43 782方法1:官方文档的方式。 这是控制器: public ... -
phalcon对控制器返回值的使用以输出json
2019-12-16 19:17 838在phalcon里,控制器的Action的方法的返回值没啥用。 ... -
phalcon数据库DB使用实例
2019-12-12 17:12 704整理了一下phalcon的db使用,写了个demo。 ... -
php-redis5.0降级成php-redis4.3
2019-08-22 00:01 897最新版本的php的redis插件,版本是5.0 但是可能会有 ...
相关推荐
•Getting Started with Zend_Paginator •Zend Framework Reference •Zend_Acl •Zend_Amf •Zend_Application •Zend_Auth •Zend_Barcode •Zend_Cache •Zend_Captcha •SimpleCloud API: Zend_Cloud...
**jQuery Ajax 分页插件 jquery_paginator 知识点详解** 在Web开发中,当页面数据量过大时,为了提高用户体验和加载速度,通常会采用分页技术来展示数据。jQuery是一个广泛使用的JavaScript库,提供了丰富的功能来...
`django_paginator2` 是一个用于Django框架的第三方库,专门用于增强和优化默认的分页功能。 Django是Python的一个流行Web开发框架,它提供了内置的分页工具`django.core.paginator`,但有时开发人员可能需要更高级...
关于"Python库"的标签,它暗示了dinteractions_Paginator是一个可重用的代码集合,可能包含特定的功能,如数据处理、网络请求、用户界面组件等。Python库让开发者可以通过导入已有的功能模块,快速高效地开发应用,...
**Python库-dinteractions_Paginator 1.3.1** 在Python编程中,库是开发者的重要工具,它们提供了丰富的功能,使我们能够高效地完成各种任务。`dinteractions_Paginator`是一个这样的库,专为处理数据分页而设计。...
在实际使用"simple_paginator"之前,开发者需要先解压这个文件,然后通过Python的`setup.py`脚本进行安装,或者使用pip工具直接从PyPI源安装。一旦安装完成,就可以在自己的Python项目中导入并使用这个库,以便实现...
在PHP开发中,Zend Framework是一个广泛使用的开源框架,它提供了许多强大的工具来简化Web应用程序的构建。本篇文章将深入探讨如何在Zend Framework中利用`Zend_Paginator`组件实现高效的数据库查询分页。 `Zend_...
- **灵活性**:允许开发者根据项目需求选择性地使用特定组件,而不是强制使用整个框架。 - **社区支持**:拥有活跃的开发者社区,提供了丰富的文档、教程和支持资源。 ##### 1.2 安装与准备 **系统需求**: - ...
在 Zend Framework 中,`Zend_Cache` 可与其他组件结合使用,例如: - **DB 分页**:`Zend_Paginator` 可与 `Zend_Cache` 结合,对数据库查询结果进行分页缓存。 - **数据库追踪**:`Zend_Db_Table` 提供了追踪功能...
项目是使用框架进行的。 目录 入门 这些说明将为您提供在本地计算机上运行并运行的项目的副本,以用于开发和测试目的。 有关如何在实时系统上部署项目的注释,请参阅部署。 先决条件 -Node.js是基于Chrome V8 ...
Bootstrap-Paginator是一个专门针对Bootstrap框架设计的轻量级分页插件,它能够帮助开发者快速、便捷地在网页应用中实现美观且响应式的分页效果。 Bootstrap本身是一个流行的前端开发框架,它提供了一系列预设的CSS...
在Zend Framework中,我们可以使用`Zend_Paginator`组件来实现。 - `Zend_Paginator`允许开发者根据数据源(如查询结果)创建分页对象,并提供简单的API来获取当前页的数据以及页码导航。 4. **数据查询与分页结合...
- **Zend_Config_Ini**: 使用`Zend_Config_Ini`类来读取配置文件(`application.ini`)中的数据库配置。 - **Zend_Db::factory**: 根据配置创建数据库连接实例。 - **$db->query('SET NAMES UTF8')**: 设置数据库连接...
Bootstrap Paginator是一款基于流行的Bootstrap框架设计的分页组件,它提供了高度可定制的界面和功能,使得在网页中实现数据分页变得简单而直观。这款组件以其简洁、响应式的界面和良好的用户体验而受到开发者们的...
本书《zend-framework-3-cookbook.pdf》是一...本书的出版是为了让开发者能够更加深入地了解Zend Framework 3中的各个组件,通过实例教学的方式,帮助开发者能够快速掌握这个框架的使用,无论你正在编写什么样的项目。
2. **基本使用**:在使用`php-paginator`之前,你需要计算出总页数,这基于你的数据总数和每页显示的数据条数。然后实例化`Paginator`类,传入当前页码、总页数和每页条数。例如: ```php use Paginator\Paginator...
在Laravel框架中,`Laravel-paginator`是用于处理数据分页的重要工具,它使得在大量数据集合中实现分页...在实际项目中,灵活运用`Laravel-paginator`,结合适当的前端组件,可以轻松实现美观且功能齐全的分页效果。
总结来说,这个压缩包中的"ssm_paginator"可能包含了以下内容:Spring的配置文件、SpringMVC的配置及Controller代码、MyBatis的Mapper接口和XML映射文件、Mybatis-Paginator的配置和使用示例。通过学习和分析这个...