- 浏览: 837554 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
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天了坚持为了我的衣衣
身体健康的问题
为了独立使用composer,不依赖框架。
假设当前使用的db类库是doctrine,则分页该怎么用?
本代码完全脱离symfony环境。只加载对应的db类库,故意不使用模板,让代码含义更加清晰。
composer
建表
请自行插入一百条数据。
假设本机项目域名www.t3.com
本代码网址
http://www.t3.com/paginator/doctrine
首页只需输入上面网址即可,点击分页链接,会自动加page查询参数。
效果展示
假设当前使用的db类库是doctrine,则分页该怎么用?
本代码完全脱离symfony环境。只加载对应的db类库,故意不使用模板,让代码含义更加清晰。
composer
{ "require": { "doctrine/dbal":"2.5.12", "pagerfanta/pagerfanta":"1.0.5" } }
建表
CREATE TABLE `test_databases` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `db_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '库名', `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '测试用户id', `created_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', `updated_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB
请自行插入一百条数据。
假设本机项目域名www.t3.com
本代码网址
http://www.t3.com/paginator/doctrine
首页只需输入上面网址即可,点击分页链接,会自动加page查询参数。
<?php namespace app\control; // use Illuminate\Database\Capsule\Manager as Capsule; // // use \Illuminate\Events\Dispatcher; // // use \Illuminate\Container\Container; // use Illuminate\Pagination\UrlWindow; use Doctrine\DBAL\Query\QueryBuilder; use Doctrine\DBAL\Configuration; use Doctrine\DBAL\DriverManager; use Pagerfanta\Adapter\DoctrineDbalAdapter; use Pagerfanta\Pagerfanta; use Pagerfanta\View\DefaultView; class Paginator { public function doctrine( $req, $res, $args) { $config = new Configuration(); //.. $connectionParams = array( 'dbname' => 'test1', 'user' => 'root', 'password' => 'root', 'host' => '127.0.0.1', 'driver' => 'pdo_mysql', 'charset'=>'UTF8', ); $conn = DriverManager::getConnection($connectionParams, $config); //构造查询语句。 $queryBuilder = new QueryBuilder($conn); $queryBuilder->select('p.*')->where("p.id < 100")->from('test_databases', 'p') ->orderBy("p.id","asc"); $countQueryBuilderModifier = function ($queryBuilder) { $queryBuilder->select('COUNT(*) AS total_results') ->setMaxResults(1); }; $adapter = new DoctrineDbalAdapter($queryBuilder, $countQueryBuilderModifier); $pagerfanta = new Pagerfanta($adapter); $page = intval( $_GET["page"]); if (!$page) { $page=1; } //设置当前页,最大页面。 $pagerfanta->setMaxPerPage(4)->setCurrentPage($page); //打印当前页面的结果 foreach ($pagerfanta->getCurrentPageResults() as $v ) { echo $v['db_name'] .' = ' . $v['user_id']."<br>"; } //打印分页链接。 $routeGenerator = function($page) { // 匿名函数解决链接字符串 return '/paginator/doctrine?page='.$page; }; $view = new DefaultView(); $options = array('proximity' => 3); // 这个数字干嘛用?中间的链接个数=这个数字*2+1,这个数字一般取3. $html = $view->render($pagerfanta, $routeGenerator, $options); echo $this->default_css(); echo "<div class='pagerfanta'>" .$html."</div>"; return $res; } private function default_css() { $css=<<<css <style> .pagerfanta { } .pagerfanta a, .pagerfanta span { display: inline-block; border: 1px solid blue; color: blue; margin-right: .2em; padding: .25em .35em; } .pagerfanta a { text-decoration: none; } .pagerfanta a:hover { background: #ccf; } .pagerfanta .dots { border-width: 0; } .pagerfanta .current { background: #ccf; font-weight: bold; } .pagerfanta .disabled { border-color: #ccf; color: #ccf; } .pagerfanta a, .pagerfanta span { border-color: blue; color: blue; } .pagerfanta a:hover { background: #ccf; } .pagerfanta .current { background: #ccf; } .pagerfanta .disabled { border-color: #ccf; color: #cf; } </style> css; return $css; } }
效果展示
发表评论
-
召唤神龙 - 安装 centos 8, php 8, mysql 8, laravel 8 的整套 php 运行环境
2020-11-27 16:26 730本文编写时间:2020-11-27 传说集齐龙珠可以召唤神 ... -
centos8 使用阿里镜像快速安装php7.4套件
2020-11-15 00:48 881centos8 使用阿里镜像快速安装php7.4套件 本文只 ... -
centos7 使用阿里镜像快速安装php7.4套件
2020-11-15 00:32 1272本文只考虑centos7 今日 2020-11-16 rem ... -
composer常用命令
2020-11-05 14:46 1499列出当前全局配置 composer config -l -g ... -
期待centos8+php8 + mysql8 + laravel8,8888
2020-10-29 19:24 542期待centos8+php8 + mysql8 目前主要使用 ... -
ubuntu 安装 php7.4以及各类插件
2020-10-24 13:20 1149ubuntu 安装 php7.4以及各类插件 安装系统 最近 ... -
宝塔定义站点
2020-02-24 10:41 2宝塔定义站点。 1111111111111111111111 ... -
让php-fpm以root账号运行
2020-02-19 21:41 831一般来说,我们没有这种需求,但是当需要时, 可以让php-fp ... -
将代码部署到coding.net
2020-01-10 14:20 662coding.net 是一个git仓库,有免费有收费。 首先 ... -
php部署工具deployer技巧 - vendor目录创建
2020-01-06 12:06 928deployer是个好东西,可是每次都composer ,其实 ... -
自定义redis多个实例
2020-01-04 01:17 654假如多个项目部署到同一台服务器,有时会被redis的各项目前缀 ... -
推荐使用php的部署工具 deployer
2020-01-03 16:48 938php部署代码可以使用 https://deployer.or ... -
使用composer 类库 cachetool 清除opcache 的缓存
2020-01-03 16:38 969php的生产服务器上,需要把opche打开。 但有时,会被缓 ... -
laravel容器学习体会
2019-12-31 15:11 685根据文档与实测结果 假设我在app下建一个Services目 ... -
phalcon 自定义超强日志类
2019-12-18 10:00 835phalcon自带的日志文件类,有两个麻烦之处。 1、路径不能 ... -
自定义后台的使用
2019-12-18 05:22 428如果自己写后台,保存用户的表单请求值 所有的情况如下: 1 ... -
phalcon 自定义事件使用的多种方式
2019-12-16 20:43 784方法1:官方文档的方式。 这是控制器: public ... -
phalcon对控制器返回值的使用以输出json
2019-12-16 19:17 846在phalcon里,控制器的Action的方法的返回值没啥用。 ... -
phalcon数据库DB使用实例
2019-12-12 17:12 705整理了一下phalcon的db使用,写了个demo。 ... -
php-redis5.0降级成php-redis4.3
2019-08-22 00:01 897最新版本的php的redis插件,版本是5.0 但是可能会有 ...
相关推荐
Doctrine 是一个流行的 ORM(对象关系映射)库,但其缓存组件不仅可以与 ORM 配合使用,也可以独立于 ORM 运行,用于存储任何类型的数据。 首先,让我们了解一下什么是缓存。缓存是一种存储临时数据的技术,目的是...
Pagerfanta提供了方便的视图组件,如`TwitterBootstrap3View`,可以帮助你快速创建符合Bootstrap样式的分页链接。 **Pagerfanta的扩展性** 除了基本的分页功能,Pagerfanta还支持自定义分页策略,如跳跃分页(skip...
Doctrine Cache是一个轻量级且易于使用的组件,它为PHP开发人员提供了丰富的API,用于管理和操作各种类型的缓存。通过这个库,开发者可以快速实现对数据的缓存,并且能够灵活地选择不同的存储引擎,以适应项目需求...
**二、使用Doctrine缓存组件** 1. **配置缓存驱动**:在项目的配置文件中,你需要指定使用的缓存驱动类型,以及相应的连接参数。例如,使用Memcached时,需要设置服务器地址、端口等。 ```yaml doctrine: orm: ...
在本文中,我们将深入探讨Doctrine Cache的核心概念、特性以及如何在实际项目中应用。 1. **核心概念** - **Cache Provider**: Doctrine Cache支持多种缓存后端,包括APC, Memcached, Redis, SQLite等。这些后端...
本手册详细介绍了如何开始使用Doctrine,包括其安装、配置、项目启动、已有数据库的适配、表的创建、模型生成、自动加载模型以及命令行接口的使用。 1. 开始使用 - 要求:确保你的开发环境已经安装了PHP和PDO扩展...
Doctrine2的核心组件包括Doctrine ORM、Doctrine DBAL(数据库抽象层)以及Doctrine Common(通用功能库)。其中,Doctrine ORM是整个框架的核心,它负责映射对象到关系型数据库,以及处理对象的持久化。 从给定...
5. **使用 Doctrine**:现在你可以像在 Laravel 中使用 Eloquent 一样使用 Doctrine 进行数据操作,例如创建、读取、更新和删除记录。 ** doctrine 的主要特性** 1. **实体**:实体是 ORM 中的核心,它们代表数据库...
本文档基于**Doctrine2 ORM官方文档**,主要介绍了其核心功能、使用方法以及高级特性。 #### 二、获取帮助 - **常见问题解答 (FAQ)**:提供了一些关于Doctrine2 ORM的常见问题及其解决方案。 - **邮件列表**:通过...
在Laravel中,Eloquent ORM是默认的ORM,但有些开发者更倾向于使用Doctrine,因为它提供了更多灵活性和高级特性。 在`Laravel开发-doctrine-repository`项目中,我们可以看到以下关键知识点: 1. **Repository模式...
"Symfony 文章列表分页实现" ...同时,使用 Symfony 框架提供的paginator组件,可以轻松实现分页功能,提高开发效率。 使用 Doctrine Paginator 可以轻松实现文章列表的分页功能,提高应用程序的性能和开发效率。
Laravel-doctrine-cache是Laravel与Doctrine结合时,用于优化查询性能的一个关键组件。 在Laravel框架中,缓存是提升应用程序性能的重要工具。它允许我们将常用的数据存储在内存中,从而避免频繁的数据库查询,提高...
### Doctrine 手册知识点概述 #### 一、简介与安装 **标题与描述解析:** - **标题**:“Doctrine 手册”明确指出这是一份关于Doctrine框架的手册。 - **描述**:介绍Doctrine作为PHP的ORM(对象关系映射)框架,...
佩吉尔芬塔 Pagerfanta是一个PHP库,它通过支持许多数据提供程序来帮助计算和呈现分页列表。此软件包是原始软件包的延续。文献资料请访问以获取有关如何使用此软件包的详细信息。安全如果您认为已发现此程序包存在...
标题"doctrine的demo"指的是使用Doctrine这个数据库对象关系映射(ORM)框架的一个示例项目。ORM是一种编程技术,它允许开发者使用面向对象的编程语言来操作数据库,而无需关注底层SQL的细节。Doctrine是PHP中广泛...
然而,有些开发者可能更倾向于使用Doctrine,因为它提供了更多高级功能,如对多对多关联的复杂处理、更灵活的查询构造器(Query Builder)以及对其他数据库系统的支持。要将Doctrine与Laravel结合,你需要安装`...
**三、Lumen-OAuth2-Doctrine 配置与使用** 1. **安装**:首先,你需要通过 Composer 将 `nordsoftware/lumen-oauth2-doctrine` 和 `league/oauth2-server` 添加到 Lumen 项目的依赖中。 2. **配置**:配置 OAuth2 ...
在Laravel中,Doctrine通常与Eloquent ORM一起使用,Eloquent是Laravel自带的ORM,但在某些复杂场景下,如多租户,开发者可能会选择使用更强大的Doctrine。 Laravel Doctrine Tenancy是一个专门为Laravel设计的扩展...
在实际项目中,你可能学习如何在CodeIgniter中集成Doctrine,包括安装扩展、配置文件设置、以及如何在CodeIgniter的控制器和模型中使用Doctrine的服务。你还将探索事务处理、懒加载、关联映射等高级特性,这些都将极...