看了 orm ,active record 看了解释觉得还是有点不太明白。

2014-05-18 23:09:27 +08:00
 no13bus
是不是通俗的讲这 2 个东西就是对 sql 语句的封装,M('user')->where(...)->select(...)类似这样的写法,为了加快工作效率?吧数据表弄成对象来整?
6402 次点击
所在节点    问与答
25 条回复
cbsw
2014-05-18 23:16:32 +08:00
ORM 有许多种实现,不知 LZ 看的是哪个 ORM,说清楚大家才能帮你
no13bus
2014-05-18 23:19:26 +08:00
thinkphp里面的。
@cbsw
no13bus
2014-05-18 23:20:34 +08:00
@cbsw 当然我说的不是具体实现。我说的是这种东西是不是说就是对 sql 语句的封装,为了加快工作效率?比如不用写sql语句了。
skydiver
2014-05-18 23:28:44 +08:00
看解释没用,真正用过了自然就理解了。不用那么着急弄懂。
cbsw
2014-05-18 23:36:56 +08:00
首先声明一下我不是 php 程序员,不过使用 python orm 的经验表明 ORM 存在的目的不是效率,毕竟加了一层封装,效率一般不如原生 SQL 语句高,ORM 是为了方便使用,同时也是为了安全,不过在查询时有的 ORM 也的确做了一些优化,比如延迟执行,ORM 的存在很大程度上消除了不同数据库的的差异,这对于使用不同数据库的 Web 开发者来说是非常得力的助手
no13bus
2014-05-18 23:41:58 +08:00
@cbsw 那个active record呢,没发现哪里用了。
skydiver
2014-05-18 23:44:56 +08:00
@no13bus active record 是来源于 ruby on rails 的……如果真的想深入理解还是去看ror吧……
Paranoid
2014-05-18 23:49:16 +08:00
Active Record (AR) 是一个流行的 对象-关系映射 (ORM) 技术。 每个 AR 类代表一个数据表(或视图),数据表(或视图)的列在 AR 类中体现为类的属性,一个 AR 实例则表示表中的一行。 常见的 CRUD 操作作为 AR 的方法实现。因此,我们可以以一种更加面向对象的方式访问数据。


M('user') 其实就是一个AR model 。。。。。

PHP 这么多的框架 ,选tp ,做死自己。
no13bus
2014-05-18 23:55:56 +08:00
@Paranoid 多谢。tp为何做死了?我觉得还行。以前从未用过框架。我看一般框架有的东西tp都有。可能是我代码写的少吧。
zzNucker
2014-05-18 23:57:49 +08:00
thinkphp真的不太行。。。
no13bus
2014-05-19 00:00:25 +08:00
@zzNucker 木有原因?愿闻其祥
Paranoid
2014-05-19 00:09:04 +08:00
@no13bus 框架大部分能做的事情都是一样的,用的爽不爽是一大重点,几年前一个同事项目中用了tp,看了下tp的文档手册,shit 一句一生黑。。。 我想这么多年可能有变化了,到主页上看看文档变了没,下载要登录,4个广告。。。。。 这种东西很主观了,用的没问题继续用就是了 :P
no13bus
2014-05-19 00:21:32 +08:00
恩。多谢。我继续用吧。毕竟还没掌握其优点和缺点
leebo
2014-05-19 00:26:12 +08:00
我的理解是主要是面对对象 还有就是不写sql 换数据库很方便 比较灵活
liuxurong
2014-05-19 00:29:33 +08:00
比其直接写字符串拼接,应该是可以避免一些SQL注入问题。


@Paranoid 大神怎么评论codeigniter?
2code
2014-05-19 08:39:34 +08:00
laravel大法好,退think保平安
laravel大法好,退codeigniter保平安

PS:think是我见过最难用的框架,没有之一
no13bus
2014-05-19 10:45:51 +08:00
@2code @Paranoid 请教下如何难用?看过一些人说tp很难用,我就接触过这1个框架,也不知道他难用在哪里?或者说别的框架好在哪里?希望给指点下,个人眼界比较窄。
Paranoid
2014-05-19 11:25:18 +08:00
@no13bus 这个框架不合我口味而已(我确实带了更多的偏见BS这个框架 :P), 但是它可能合你.

在你时间可控的状况下, 多试几个框架何尝不是好事, 有比较才能得哪个更适合你. 别人的判断终归是别人的.

laravel,
yii,
codeigniter,
zend
.......

为什么这么多框架,不就是很多人不爽某个中的某点,然后又造出另一个,最终又会被下一个取代.
zts1993
2014-05-19 11:37:01 +08:00
不要用tp的ar。。反正我是不用tp3.2开始bug特别多,,楼主要小心,,我一般都自己的写过程去封装,不用AR
no13bus
2014-05-19 12:15:41 +08:00
@Paranoid 多谢。写完了这个项目再用laravel写一遍看看。

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

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

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

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

© 2021 V2EX