The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
[ 数据库抽象层 ]
1 :背景

  用户做数据库迁移时,为了保证平稳过渡,常常需要同一个应用程序能够连接几种不同类型的数据库。而各个数据库在处理某种数据类型往往有特殊的处理方式。这就产生一个问题,在通常的数据库编程中DAO模式作为数据访问的标准模式大量应用,可以很容易的保证数据库的访问不依赖于数据库类型和业务对象,但是在处理特殊数据类型时,还是要依赖于具体数据库。为了保证通用性,可以使用工厂模式对不同的数据类型进行处理。


2 :实现方式

  DoYouHaoBaby 通过一个标准Db.class.php类,将数据库底层进行深度封装,通过数据库抽象工厂方法实现按需加载底层数据库对象。通过这种方法,DoYouHaoBaby 实现了能够在不同数据库平台平稳迁移,并且提供任意切换数据库(同种数据库之间,不同数据库种类之间)。当然,这一切都不要人工干预,DoYouHaoBaby 数据库组件会负责底层数据库之间的协调。

3:高级支持

数据库抽象层也支持B/S分布式数据库的连接,包括对等和主从方式两种的支持,而且也支持多数据库连接和切换。同时,DoYouHaoBaby 将数据库组件和模型进行深度融合,完善的Orm 为大型复杂应用程序提供完美的noSql 解决方法。


4: 小结

  DoYouHaoBaby 通过实践发现,工厂模式在处理不同数据库中相同数据库的方法。实际应用表明,该实现只是对现有的框架的松散耦合,实现方式简单并具有较好的可扩展性。因此我们十分推崇这种方法,只能用一句2010 年的话说,给力啊。