model,entity,dao,orm这几个的区别?
程序员文章站
2024-01-08 14:27:46
...
有点混淆啊,大神给说一下几个的区别啊。
回复内容:
有点混淆啊,大神给说一下几个的区别啊。
model一般在MVC中出现,指的是M层,也就是模型层。
entity在PHP中我很少见到,一般在asp和java中多一点,也是框架中的一部分,也算是模型层的一部分吧,他是把数据表或其它持久化数据的格式映射成的类,就是实体类,里面一般属性居多,你可以理解一个字段对应一个变量属性。
dao一搬指的是数据库的封装接口,PHP中有pdo就是这个,model层就是在其基础之上的。也有MVC喜欢把model层和dao层搞成一个,但是一搬不建议这样,耦合性差。
ORM是一种设计,一般在框架中应用很多,PHP中也很多,一般在model层体现出来,这个是居于面向对象编程才有的。全称是“Object Relational Mapping”。一般你可以理解成一个对象对应的就是数据库的一张表,有统一的操作API(find,select()等等),当然还有一对多,多对多的关系,你在实际使用过程当中就能感受到了。
举个栗子
//TP框架下
//会再内部执行select * from user where id = 1
//这里的$userModel就是一个数据表对象
$reslut = $userModel->where(['id'=>1])->find();
如果有问题,请在评论区大家一起讨论,完善。
(●'◡'●)