pear mdb 数据抽象层

Write once – run anywhere
一次编写——随处运行
这是Java的一句行销口号,但是它同时也是 PHP的关键特性之一。许多商业模型依赖于操作系统无关性来保证产品能够销售给广泛的客户群体。因而,为什么要把你自己绑在某种数据库厂商的身上呢?数据库抽象层使得你能够与数据库独立的开发你的应用程序。但是,通常情况下它们对性能的影响超过了你所希望的,要么他们并不足够抽象以消除所有和特定数据库相关的代码。
这篇文章将教给我什么?
这篇文章将对数据库抽象包 PEAR MDB 有一个很好的介绍。文章的焦点将是对 MDB 超越类似包所提供的更先进的特性,例如数据类型抽象和基于 XML 的 schema 管理。对 PHP 和 SQL 的基本理解是推荐的。
继续阅读“pear mdb 数据抽象层”

PEAR DB_DataObject 简介

DB_DataObject将数据表封装成对象,所有对数据库的操作转化为对象的操作。
使用DataObject,完全不用跟SQL打交道。特别在需要修改数据库结构的时候,例如增加或删除表和字段、改名、更改表间关系,在设计一个稍为复杂的系统时,这些情况都会经常出现。使用DataObject,只需修改很少的几个地方,不用去修改讨厌的SQL语句。再配合其它几个类,例如FormBuilder,DataGrid,就能够用很简单的几行代码实现数据输入和输出显示等复杂功能。
很多人使用DB类,因为DB类隐藏了不同数据库的差异。但是你还是要直接使用SQL语句。DataObject在DB的基础上进一步抽象,隐藏了数据库。
继续阅读“PEAR DB_DataObject 简介”

PHP5中的对象持久层实现:Propel简介

传统的PHP应用程序一般采用无框架的Client-Server-Database三层模式,实现起来快速,很适合中小企业搭建动态站点的需求。 PHP5的出现,把PHP引向更广泛的使用领域。现在的站点,不仅要考虑站点的运行效率,还要综合开发效率以及未来的维护成本。于是有很多站点开始用基于 MVC模式的框架。
在M,也即模型中,考虑的正是数据模型的存储和数据。一般的解决方案将使得在业务逻辑中夹杂着较多的SQL。 ORM的出现很好的解决了这个问题。

Propel是一个ORM的PHP实现。

简介:
Propel是一个基于Apache Torque的对象持久层,需要PHP5支持.实际上,它让你使用 对象 代替SQL 来读写数据库表中的记录.它提供了一个生成器来创建基于你的数据模型的SQL定义文件和相应的类文件,并有一个运行时引擎透明的处理对象持久和获取工作. 如果要定制生成的类将是很简单的事情,XML, PHP类和Phing构建工具使得把Propel集成到已有的应用程序框架也相当的容易.
Propel算是PHP中对ORM的实现,并且用到它的兄弟项目Creole作为数据抽象层.
它的核心思想是:通过 XML 格式的模式文件和相应的配置文件来生成SQL和类, 在数据库抽象的基础上,  更近一步,它”隐藏”了数据库,使得WEB开发人员专注于业务逻辑上.
实践:著名PHP框架 symfony使用了精简版的Propel.
相关:PEAR DB_DataObject是另一个轻型的ORM实现,不过它的数据库抽象层使用的是 PEAR DB.
链接:
http://propel.phpdb.org
http: //creole.phpdb.org