1. Api+Domain+Modelphp
其实这样的三层结构和java中的web+service+dao比较像,和咱们日常所说的MVC开发模式也是很是想象。只是说web和api一个进行页面显示一个不进行页面显示这个区别,本博文主要着重讲一下这三层在Phalapi中分工是怎么样的,他们分别担当者什么样的角色,须要作什么样的事情。html
1.1 Api层java
为何说Api层像java中的web层呢,由于他们有一个共同的特性就是接受请求和返回结果。只不过java中没有表现得那么强烈,它会经过控制器把请求转发到service层做处理,并将处理结果在页面展现,因此Api更像担当控制器(C)的做用。web
Api层中须要作的事情以下:数据库
a. 注册接口/定义接口和控制请求参数api
这是首先要作的事情,和在web中的url同样,就是添加须要接受的参数以及对参数进行验证,以下:服务器
b. 进行业务、逻辑的拼接
mvc
在这里进行业务、逻辑拼接,好比说是查询商品分类列表(依查询商品为例)接口须要作两件事情,第一查询出商品的分类列表信息,第二查询把查询出的信息进行 返回,应该是以下样式:框架
1.2 Domain层dom
Domain层主要负责的是具体的业务实现,如数据获取,一个Domain方法就是一个小的业务具体实现(注意尽可能把业务划分得细一点方便通用)
1.3 Model层
Model层其实无需多讲,也就是把数据库操做单独提炼出来统一处理,以下:
2. 三层结合使用的好处
2.1 结构清晰,互不干扰
就我我的感受来讲,在实际开发中使用这样的三层结构带来的最大的好处在于结构清晰,为何这么说呢?由于每一层须要作的事情都是很是独立的,你永远不会在A PI层中看到数据操做的代码,因此在排查问题的时候,若是是数据出了问题,确定不会去API层里面去找,这样就很是方便错误的定位,再者就是代码可读性很是高,相对 于mvc框架来讲这样的好处是很是明显的。
2.2 高度解耦,灵活高可用
带来的第二个很重要的好处就是解耦和高可用,高可用体如今Api能够重复利用Domain,Domain能够重复利用Model,这样能够减小不少没必要要的代码量。若是相互 的关系仅仅只是拼接(除非是结果会互相影响)的状况下就实现了解耦。
2.3 分工合做,提升效率
在有这样的一套规范以后在分工合用时,对方不须要去看你的代码具体实现了什么,只须要看你这个方法干了什么,直接拿起来用就能够了,固然是在业务划分红小块 的状况下,并且能够很明确的划分出来模块,当你须要用到对方的模块的时候只须要让对方提供便可,这样能够增长模块的专一性,从而提升合做开发的效率。
3. 总结
其实在刚刚接触这个框架的时候,我也是特别不能理解这样划分的做用,在后面的开发和别人的交流中进行了一些尝试后,发现这样用起来确实有不少的好处,但愿今天的博文能让你们理解这样的一种规范能够带来不少的好处,而且本身去尝试和使用。