
最近在开发的一个项目都是手写SQL,感觉很繁琐啊;
想用orm,但是有的观点是orm不灵活,而且效率不高;
这方面有实际经验的小伙伴给个意见吧。
1 cevincheung 2015-06-15 22:10:42 +08:00 手写sql 自己封装一些常用的join、insert、update、delete就好了。 |
2 lbp0200 2015-06-15 22:29:18 +08:00 via Android laravel里面有,挺方便的 |
3 abelyao 2015-06-15 23:15:30 +08:00 via iPhone 如果用框架的话,一般都自带 ORM 了。 或者楼主可以搜一个叫 medoo 的类库,封装了 SQL 的操作,挺方便的。 |
4 mcfog 2015-06-15 23:32:12 +08:00 via Android 看你有多少队友,队友的平均&最低战斗力,以及项目打算维护多久决定了 我个人来说是极其讨厌 |
5 mcfog 2015-06-15 23:33:30 +08:00 via Android (续)极其讨厌手写sql的,至少也会弄个类似NotORM的dbal来屏蔽sql这件事 |
6 lincanbin 2015-06-16 00:32:03 +08:00 我倒是非常喜欢手写SQL,组装的黑盒看不见里面总是不太高兴。 SQL并不复杂,最多也就十几二十行,也就直接写了。 |
7 Septembers 2015-06-16 02:02:49 +08:00 via Android @lincanbin ORM细节不可控,有些意想不到问题就来自这些细节 |
8 yegle 2015-06-16 03:23:40 +08:00 手写哈哈哈哈等着被注入吧。好歹绑定个变量啊 |
9 hgc81538 2015-06-16 03:34:57 +08:00 via iPhone RedBeanPHP http://www.redbeanphp.com |
10 mahone3297 2015-06-16 07:08:21 +08:00 有必要,doctrine |
13 weer0026 2015-06-16 08:19:25 +08:00 用ORM主要是喜欢它可以通过查询取出对象数组。 |
14 c060604 2015-06-16 08:58:14 +08:00 orm开发效率高 找些成熟的类库就没什么多大问题 |
15 yangmls 2015-06-16 09:02:50 +08:00 @lincanbin 字段和库更名了,手写改起来就很蛋疼 不过 ORM 也可以手写 SQL,比如 Yii 就提供过 findBySql 这样的玩意 不过就算不用 ORM,我感觉 query builder 也是更好的选择 |
16 yakczh 2015-06-16 09:07:13 +08:00 如果用json把sql参数写成配置文件, 就不用写拼字符串了,也不用改代码,这种方式可行吗? |
17 tabris17 2015-06-16 09:08:56 +08:00 PHP的ORM非常弱逼。也就Phalcon的ORM支持PHQL还凑合 |
18 66beta 2015-06-16 09:44:41 +08:00 Laravel Eloquent |
19 mhycy 2015-06-16 09:52:11 +08:00 用PDO一直都不用拼接字符串。。 原生支持参数化查询,包装一下就好了 |
20 lujiajing1126 2015-06-16 09:57:48 +08:00 Doctrine |
21 Agromania 2015-06-16 11:13:43 +08:00 Doctrine or Eloquent 手写sql。。。等着被注入吧+1 |
22 wingoo 2015-06-16 11:33:13 +08:00 |
24 fangjinmin 2015-06-16 12:30:08 +08:00 ORM不好对SQL优化。还是直接用SQL比较好。 |
25 xujif 2015-06-16 13:32:21 +08:00 orm开发,sql优化。为接口编程。 |
26 TangMonk 2015-06-16 13:38:04 +08:00 Doctrine |
27 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。 |
28 danial 2015-06-16 15:09:28 +08:00 绝对需要。 推荐是Doctrine/ORM,lavarel目前还没用过,不做评价。 |
29 bearzk 2015-06-16 15:46:48 +08:00 推荐同事写的 https://github.com/ihabunek/phormium 虽然他说了 'test before use' 但是其实我们的production api已经在用这个了 :) |
30 hildert 2015-06-16 16:24:17 +08:00 Doctrine |
31 timsims 2015-06-16 16:28:04 +08:00 ORM不灵活这观点从何而来,正因为手写SQL太繁琐才需要ORM 目前用Laravel Eloquent |
33 gDD 2015-06-17 11:50:36 +08:00 @Agromania 我的回复里既没有推崇手写 SQL 也没有推崇重造一个 ORM 出来,那么后面两个问号就不是针对我的。另外 ORM 的代码确实是手写出来,但这和本帖的主题「手写 SQL 语句」是两个概念啊。*当然*,手写 SQL 语句不代表会被注入。 |
35 infatu8 2019-08-17 11:44:03 +08:00 长远考虑,必须手写啊 直接用 pdo,或在 pdo 的基础之上做简单的封装即可 什么 orm 都是浮云,当项目越做越大,最后你会发现,你之前用 orm 做的 db 操作 一半都要优化成手写 sql 另外,手写 sql 不代表着会被注入,凡是认为手写 sql 就会被注入的,证明你功力还不够,基础不行 |
36 infatu8 2019-08-17 11:47:02 +08:00 补充: 手写 sql 并把相关方法放到模型里去,这样有助于理解什么是模型 orm 让很多新人误解了模型的概念 |