为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 中什么时候用 component 什么时候用 Model,特别迷惑

PHP 中什么时候用 component 什么时候用 Model,特别迷惑

沧海一幻觉 2019-04-21 20:37:44
开始使用yii2,但是被里面的弄得很迷惑,component和model的区别是什么样的。以下是一些自己的心得,可能有错误,请指正:1)发现yii2一些规律,在@app/models/*文件有2种类型。比如InfoForm这样以Form结尾的文件都是继承自Model,而Info.php这样的表名的文件都是继承自ActiveRecord。但疑问的是在github上看到的一些yii2的程序,里面的全部都写在一个Info.php这样的里面。(不过网络上使用yii2开发的开源程序真的是少得可怜,没有研究)2)component与model的区别到底是在哪里?什么情况下该用component什么情况下该用model?貌似继承自ActiveRecord的Info.php这样的就只是一个单独的这样文件:php
查看完整描述

2 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

1、当模型本身对应数据库中的表,有数据库查询时继承ActiveRecord(例如User),当本身不涉及到数据库查询时,继承Model(类似LoginForm,它想操作数据只需引用User模型中的方法操作就行,本身不需要)。ActiveRecord继承自Model,扩展了数据库操作的功能。
2、Model继承自Component,扩展了规则,场景,验证等功能,感觉model文件夹下的一般都继承model和activerecord就行了吧,没必要继承component
3、扣除积分的功能,个人认为应该写在积分model中,对于更复杂的,类似购物流程这个,有人建议再增加一个service层,来处理用到多个model的逻辑。
4、5对于组件等只是了解大体原理,没怎么用过,感觉简单的增加积分什么的,用事件只需要在积分model中写入记录时绑定用户model中的修改总积分的事件就可以吧,至于用行为,一般是好多个类通用时才会用到吧。公共的方法类似工具类一般不会涉及到数据库的操作。
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 434 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信