有人对在 PHP 中实现 ActiveRecord 有任何建议吗?我一直在使用CBL ActiveRecord,但我想知道是否有任何可行的替代方案。
5 回答
我意识到这已经过时了,但是有一个非常棒的 PHP Activecord 库,恰当地称为 PHP Activerecord。我已经使用它几个月了,它把其他图书馆吹走了。
看看这个:
依靠!;)
例如有ADODB 的 Active Record 实现,然后有 Zend_Db_DataTable 和Doctrine。这些是我所知道的,我相信还有更多的实现。
在这三个中,我推荐Doctrine。上次我检查 Adodb 为 PHP4 带来了很多额外的重量,而 Zend_Db_* 在完整性和性能方面通常不被认为是最好的(很可能是由于它的年轻)。
除了 Active Table 和通用数据库抽象事物(又名 DBAL)之外的学说有很多东西(例如迁移)值得一试,所以如果你还没有决定使用 DBAL,你需要检查一下.
我发现了一些其他实现的例子: Luke Baker 有一个他在 PHP 中调用 Active Record 的例子。
Flinn 有一篇关于为什么在 PHP 中不可能因为在 Ruby 中一切都是对象的帖子。在这里跟进
我认识几个看过ZF的人,你试过吗?
这更像是一个如何实现的技巧,但我开始涉足在 PHP 中创建一个 ActiveRecord/DataMapper 实现,并很快遇到了许多类似数组访问的障碍。最终,我找到了 PHP 的 SPL 扩展,尤其是 ArrayObject 和 ArrayIterator。这些开始让我的生活变得轻松多了。不幸的是,我没有太多时间投入到它上面,但是任何尝试过这样的事情的人都应该检查一下。
虽然严格来说不是 ActiveRecord,但Zend_Db_Table 非常好。