laravel项目架构总结
2018-01-31 本文已影响53人
smallThree1
以laravel为例,整理一些项目架构方面的思路
受限于MVC思路的影响,很多人都僵化的认为controller就是业务逻辑相关,model就是数据库层,view就是展示层。这在项目比较小的情况下没有问题,但是在大中型相中,业务逻辑复杂并且冗余的情况下,会造成controller过于臃肿,这时候可能会为了减轻controller,会将部分逻辑移到model中,但是这样不光以后不好维护,并且也不是很符合MVC的规范.
所以在项目架构方面,可以把Controller再进一步细分,将复杂或者重复业务逻辑封装为Service层,而Controller层只是对Service层的调用组合,这里主要使用到设计模式的建造者模式思维,在model中也可以进一步细分,原有的model层只是作为MVC中提倡的仅仅作为数据库的表层,这里面只包含最基本的表名,字段等基础信息,在这之上再设计一个Rep层用作对复杂数据操作的封装,一般针对复杂数据的操作我们就只在该层进行,并且controller一般也只调用Rep层
关于VIEW层的分离类似于controller层,将复杂且复用性高的view切分为多个,VIEW层只负责组合调用这些子模块