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

2015 年 6 月 15 日
 codegeek

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

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

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

15012 次点击
所在节点    PHP
36 条回复
Agromania
2015 年 6 月 16 日
Doctrine or Eloquent

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

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

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

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

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

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

© 2021 V2EX