时间:2009-05-22 23:00:04

类别:脚本收藏

访问:5941

最佳PHP开源ORM框架Doctrine

Doctrine是一个PHP的ORM框 架,它在 >=php5.2.3版本上才支持,它是一个功能强大的数据抽象层.它的一个主要特征就是写代码是OO方式的,并且它有一个DQL的语言, 这为开发人员提供了强大的替代到SQL保持最高的灵活性,而不需要不必要的代码重复。

===================================

Doctrine数据库编码修正:

有个问题就是建立数据库时一般推荐采用UTF-8编码以方便支持中文,同时为了统一连接校对和数据库字符为UTF-8, 在直接写sql的时代针对MySQL我们可以直接写 “set names utf8″,其他数据库就不同了。Doctrine 考虑得比较周到,可以通过如下操作来对所有的数据库连接进行设置:

Doctrine_Manager::getInstance()->getCurrentConnection()->setCharset('utf8')

在mysql数据库里面,每次操作都会执行,而我们很多时候可能根本不需要数据库操作,太浪费了。以下是解决办法,可以在建立实际的数据库链接操作之后才执行这条语句。

<?phpclassCharsetListenerextendsDoctrine_EventListener {protectedstatic$charset='utf8';publicfunctionsetCharset($charset='utf8'){self::$charset=$charset;}functionget($charset=''){if(!empty($charset)){self::setCharset($charset);}returnnewself();}publicfunctionpostConnect(Doctrine_Event$event){$event->getInvoker()->setCharset(self::$charset);}}

下面是初始化代码

$config=parse_ini_file(ROOT.DS.'app/config.ini.php',true);$db=$config['database'];$dsn= “{$db['driver']}://{$db['user']}:{$db['pass']}@{$db['host']}/{$db['name']}”;Doctrine_Manager::connection($dsn,$db['name']);CharsetListener::setCharset($db['charset']);Doctrine_Manager::getInstance()->getCurrentConnection()->addListener(CharsetListener::get($db['charset']));

这样就能够兼顾效率和字符集了。

Incoming search terms:

php框架orm技术,最佳PHP开源ORM框架Doctrine相关推荐

  1. 淘宝客户端 开源框架_使用最佳的开源客户端框架进行云计算

    存档日期:2019年5月13日 | 首次出版:2009年8月18日 了解使用Adobe®Flex和OpenLaszlo(两种领先的客户端富Internet应用程序(RIA)开发语言)的优缺点,这对于为 ...

  2. rf框架的缺点_2017热门开源自动化测试框架优缺点对比

    原标题:2017热门开源自动化测试框架优缺点对比 时间一晃已来到 2017 年的最后一个季度,TestProject 对比了在今年比较热门的 7 款开源 自动化测试框架的优缺点,以帮助你选择适合自己的 ...

  3. 轻量级PHP接口框架PhalApi开源接口框架 v2.17.1源码

    简介: PhalApi简称π框架(派框架),一个轻量级PHP开源接口框架,配套运营管理平台,专注于接口服务开发,支持HTTP/SOAP/RPC协议,拥有自动生成的在线文档.多种开发语言的客户端SDK包 ...

  4. 简单易用的开源ORM框架SqlSugar v5.0.0.19源码

    介绍: SqlSugar是一款简单易用的开源ORM框架. 框架优点: 简单易用.功能齐全.高性能.轻量级.服务齐全 支持数据库:MySql.SqlServer.Sqlite.Oracle.postgr ...

  5. Orm框架介绍和常见的Android Orm框架

    ORM(Object Relational Mapping)框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中. 先介绍一下ORM的概念,以前也一直听说 ...

  6. 学习笔记之什么是持久化和对象关系映射ORM技术

    ----------------本文转自:http://www.cppblog.com/javenstudio/articles/541.html--------------------- 何谓&qu ...

  7. .NET 5 开源工作流框架elsa技术研究

    编者注: 工作流框架 elsa 是.NET基金会下面的开源项目,2.0版本即将在3月份发布,目前正在紧锣密鼓的开发之中,2020年2月份我也介绍过推荐一个很棒的开源工作流elsa-core ,今天给大 ...

  8. mongodb orm java_基于Java的ORM框架 Mongodb-ORM

    软件介绍 mongodb-orm简介Mongodb ORM是基于java的ORM框架,简化了SDK的使用,使代码变得更清晰.简单. 与Ibatis类似,将查询.执行语句封装在xml中,与代码隔离.简称 ...

  9. Java开源Web框架

     WebWork   点击次数:18070 WebWork 是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架.WebWork目前最新版本是2.1,现 ...

最新文章

  1. svn 命令行创建和删除 分支和tags
  2. JDBC连接数据库过程
  3. Operations Manager 2007 R2系列之单台性能视图
  4. python字典数组排序sorted_Python利用sorted进行字典排序
  5. IntelliJ IDEA 快捷键(一)(window版)
  6. leetcode99. 恢复二叉搜索树(优先队列)
  7. 每日面试之Java集合
  8. CentOS 6.5 x64 Redis 安装
  9. Jscript中文变量乱码,又一次中招 _
  10. qq里面cap字符_QQ 幸运字符一共有几种?
  11. 【数字信号去噪】基于matlab小波软阈值+硬阈值+改进阈值轴承故障仿真信号去噪【含Matlab源码 1024期】
  12. 用vb6.0编写简易计算机,vb小程序(用vb编写简单小程序实例)
  13. 苹果ipad怎么录屏_原来苹果手机还能这样投屏!1秒小屏变大屏!太好用了
  14. HL7 v2.5 入门
  15. 数据解读:在上海,创业者真的不受待见吗?
  16. 20159318 《网络攻防实践》第2周学习总结
  17. JavaScript函数-创建参数个数不限数量的函数
  18. 暗影精灵8 pro安装ubuntu20.04后,没有wifi驱动
  19. Simulink 3D Animation的使用(V_realm builder2.0)
  20. 【jqprint打印】js两种超简单的打印方法

热门文章

  1. CSDN日报20170721——《为什么我们创业失败了和选择创业公司的思考》
  2. 噩梦系列篇之Player的动画状态机
  3. 某银行系统ACS认证之TACACS+认证方案
  4. Redis 为什么这么快? Redis 的有序集合 zset 的底层实现原理是什么? —— 跳跃表 skiplist
  5. C# ClipCursor
  6. oracle数据库表中文注释显示为乱码
  7. 说一下 Deferred Shading MSAA那些事
  8. TCP CheckSum 计算
  9. js获取当前日期(年份,月份,时间)
  10. 2017年8月读书笔记