半年多前我在CI论坛上发布了一个未完善的ORM库(
帖子链接),支持
PHP4/5,基于CI的Active Record,无须配置(但需要遵守特定的
数据库格式),开源。
大约两个月前左右,我开始
开发新的ORM库,仅支持PHP5,仅支持MySQL,同样无须配置,并且可以随意的
开发数据库(ORM库会自动分析数据库)。过几天开始我会继续
开发,等成熟后会开源。:)
我想听听大家对ORM的看法。
我先抛砖引玉了——
我个人认为,使用ORM的最大
好处便是缩短程序开发的周期。这就好比使用CI一样——如果所有的代码都重新写,
性能上肯定要比使用任何
框架(包括CI)都来得快,但是使用CI能够大幅的减低程序开发周期。当然,同样的,用ORM也会降低程序的
性能。
目前市面上已经有好多ORM的
方案了,从RoR的Active Record到CakePHP到Doctrine之类的。我觉得他们最大的问题就是——所有的对象都要设定两次。一次在程序里,一次在数据库里。部分ORM(比如RoR的)有自动建立数据库的功能,但是,好多时候,我们做项目,都是从数据库开始设计起的。而设计数据库的最普遍的
方案就是用UML。
所以,我一直认为,ORM应该是由数据库来决定程序里的对象,而不是反过来。
这里有对目前大部分ORM方案缺点的陈述(
http://dave.org.uk/talks/lpm/2006/orm/)。
各位的看法呢?:)