时间:2021-07-01 10:21:17 帮助过:14人阅读
普通的CRUD操作需要走业务层吗?
实际情况是直接用Active Record提供的create、delete、update、find方法就能搞定
一般CURD在MODEL做
S层做一些复杂的事情
单个实体的CRUD是放在DAO里做的,Service层再调用这些CRUD方法。
普通的就不需要业务层了,用 Rails 通用的做法就行了。
可以参考下InitPHP框架的分层说明:
http://initphp.com/3_2.htm
MVC分层是开发比较常用的分层方式,也是比较合理通用的方式.
MVC分层将Web分成三层: 模型层,控制层,视图层.
MVC分层将PHP代码和HTML进行了分离,使项目更加整洁和清晰.
InitPHP默认采用DSCV的分层方式,同样也支持MVC分层,DSCV方式将MVC分层的M层分成DAO和Service层.
使用MVC分层,只需要在Controller中直接调用InitPHP::getDao()的类就能实现.
DSCV分层: Dao(数据层),Service(业务服务层),Controller(控制层),View(视图层)
DSCV分层最大的特点是将MVC的模型层Model分离成Dao数据层和Service服务层.
DSCV分层的好处是让各个层次的职责更加明确,数据层更加专注数据操作(SQL操作,缓存操作),业务服务层更加专注提供控制层通用的函数接口.
Service一般是针对业务的,例如用户类UserService,将提供用户注册,用户信息修改等接口,Service可以让Controller来调用.
Service中获取数据通过Dao来实现,一个复杂的Service会对应多个Dao.