一些使用 PDO 的 ORM?

Posted

技术标签:

【中文标题】一些使用 PDO 的 ORM?【英文标题】:Some ORM using PDO? 【发布时间】:2009-08-28 11:36:26 【问题描述】:

我正在寻找一个使用 php 扩展 PDO 作为基础的良好 ORM(即 Active Record)。有什么建议吗?

【问题讨论】:

【参考方案1】:

Doctrine 或Propel。

【讨论】:

我的 2 美分:一路教义。 我也更喜欢 Doctrine,但我会从“religious-war”标签中保存这个帖子:) 绝对学说;特别是考虑到未来可能不会积极开发 Propel:groups.google.com/group/propel-development/msg/…【参考方案2】:

一定要遵守教义。

【讨论】:

【参考方案3】:

如果您使用的是 PHP 5.3,现在可以使用 PHP 实现的 ActiveRecord (link)。它在github 上,以防您想观看或分叉它。 我检查了 github 上的源代码,它确实使用 PDO 作为其核心来执行查询。

【讨论】:

【参考方案4】:

我没有使用过 Doctrine 或 Propel。 Propel 看起来很简单而且非常好(可能必须试一试).. Doctrine 似乎不仅仅是 ActiveRecord ORM。我是 phpactiverecord (http://www.phpactiverecord.org/) 的忠实粉丝。它很简单,很有意义,并且是为 MVC 架构构建的。我以前用过CodeIgniter的ActiveRecord,类似:都是php,很容易建立新的连接,我特别喜欢Dynamic finders,基本上可以让你把“WHERE”的字段放在函数中,而不必给一个关联数组。 Propel 也可能有这个,例如:

$book = Book::find_by_title('War and Peace'); 

对比:

$book = Book:find('all', array('conditions' => "title = 'War and Peace'"));

【讨论】:

【参考方案5】:

另一个选项是phpDataMapper,它是DataMapper 模式的轻量级实现。

【讨论】:

【参考方案6】: Doctrine (可选配 Symfony) - http://symfony.com/ 推进(可选配 Symfony) - - http://propelorm.org/ Zend_db(可选用zend)-http://zend.com/ CakePHP 使用众所周知的设计模式,如 MVC 和 ORM - - http://cakephp.org/

还有更多的 ORM http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software

【讨论】:

【参考方案7】:

我认为将 PDO 用于 php 的最好和最简单的 ORM 之一是 Redbeanphp :http://www.redbeanphp.com/

【讨论】:

以上是关于一些使用 PDO 的 ORM?的主要内容,如果未能解决你的问题,请参考以下文章

使用 ORM 时的 PHP 性能和内存

Codeigniter 数据库访问 - ORM 性能

Laravel Eloquent ORM 事务

Pdo总结

PHP中使用PDO操作事务的一些小测试

PHP中使用PDO操作事务的一些小测试