PHP 有没有必要使用 ORM?如果使用的话大家有什么好推荐的?

2015-06-15 22:02:26 +08:00
codegeek  codegeek

最近在开发的一个项目都是手写SQL,感觉很繁琐啊;

想用orm,但是有的观点是orm不灵活,而且效率不高;

这方面有实际经验的小伙伴给个意见吧。

13980 次点击
所在节点   PHP  PHP
36 条回复
Agromania
Agromania
2015-06-16 11:13:43 +08:00
Doctrine or Eloquent

手写sql。。。等着被注入吧+1
wingoo
wingoo
2015-06-16 11:33:13 +08:00
gDD
gDD
2015-06-16 12:16:08 +08:00
@Agromania 手写不代表会被注入。参数绑定和手写SQL并不冲突。
fangjinmin
fangjinmin
2015-06-16 12:30:08 +08:00
ORM不好对SQL优化。还是直接用SQL比较好。
xujif
xujif
2015-06-16 13:32:21 +08:00
orm开发,sql优化。为接口编程。
TangMonk
TangMonk
2015-06-16 13:38:04 +08:00
Doctrine
ywisax
ywisax
2015-06-16 14:25:28 +08:00
长期维护的项目,牺牲一定灵活性和运行效率来换取 编码效率是值得的,我认为有必要用orm。
php中的orm一般都是做sql拼凑、参数过滤和绑定、部分有缓存功能或query builder,设计得好的话,可以让代码逻辑更加优美。
框架推荐的话,大型的推荐doctrine/orm,微型的有redbean,适中的有PhpActiveRecord。对个人来说,用得最舒服的orm类库,是yii2的ActiveRecord和kohana的orm module。
danial
danial
2015-06-16 15:09:28 +08:00
绝对需要。
推荐是Doctrine/ORM,lavarel目前还没用过,不做评价。
bearzk
bearzk
2015-06-16 15:46:48 +08:00
推荐同事写的 https://github.com/ihabunek/phormium
虽然他说了 'test before use' 但是其实我们的production api已经在用这个了 :)
hildert
hildert
2015-06-16 16:24:17 +08:00
Doctrine
timsims
timsims
2015-06-16 16:28:04 +08:00
ORM不灵活这观点从何而来,正因为手写SQL太繁琐才需要ORM

目前用Laravel Eloquent
Agromania
Agromania
2015-06-17 11:07:15 +08:00
@gDD 当然,orm本身都是手写的。但是何必又写一遍呢?一定能做得比别人更尽善尽美吗?
gDD
gDD
2015-06-17 11:50:36 +08:00
@Agromania 我的回复里既没有推崇手写 SQL 也没有推崇重造一个 ORM 出来,那么后面两个问号就不是针对我的。另外 ORM 的代码确实是手写出来,但这和本帖的主题「手写 SQL 语句」是两个概念啊。*当然*,手写 SQL 语句不代表会被注入。
mingyun
mingyun
2015-06-22 00:14:45 +08:00
@timsims 同推荐
infatu8
infatu8
2019-08-17 11:44:03 +08:00
长远考虑,必须手写啊
直接用 pdo,或在 pdo 的基础之上做简单的封装即可
什么 orm 都是浮云,当项目越做越大,最后你会发现,你之前用 orm 做的 db 操作 一半都要优化成手写 sql
另外,手写 sql 不代表着会被注入,凡是认为手写 sql 就会被注入的,证明你功力还不够,基础不行
infatu8
infatu8
2019-08-17 11:47:02 +08:00
补充:
手写 sql 并把相关方法放到模型里去,这样有助于理解什么是模型
orm 让很多新人误解了模型的概念

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/198800

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX