MVC是Model模型、View视图、Controller控制器的缩写。其目的是为了良好的代码组织。
Model属于数据层,对数据库做增删改查。
View为视图层。前后端分离时,View层直接被抽出去给前端了。该层在PHP中是模板引擎,或者把该层给JS框架,让PHP做接口返回数据,交给客户端渲染。渲染本质是字符串拼接,将数据渲染进一些固定格式的html代码中形成最终的html展示在用户页面上。拼接字符串会引起性能的消耗。客户端渲染,如Angular、React、Vue等,在首次渲染时,大多是将原html中的数据标记(如 {{ text }} )替换。
Controller为控制器层。它处理用户与服务器的交互,用户输入URL,经过框架启动、路由分配,到控制器层。控制器不负责数据的获取,保证了数据操作的单一路口。
Logic为逻辑层,处理业务逻辑。可将常用的可复用的业务逻辑抽象成一个Logic,Controller可以直接调用Logic。对于简单的业务,可以直接调用Model;如果有复用必要,整理到Logic中。
Service为服务层,为其他层提供服务。
举例。在ThinkPHP中,可以将模块内的Service和Model设置为同级目录,Service的使用方式和Model相同,只是Model主要实现数据的CURD方法,而Service主要配合Model中定义的CURD方法实现业务逻辑,最后Service和Model中的方法还是需要在Controller中调用。
领取专属 10元无门槛券
私享最新 技术干货