#phalapi-进阶篇1(Api,Domain,和Model)#
##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架.
本小节已经步入了进阶篇,在进阶篇中会着重谈论一些框架中运用的一些好的思想并且进行解读,本小节主要是讲解在Phalapi框架中推荐使用的三层结构Api+Domain+Model将从各个角度和整体角度进行讲解.
附上:
开源中国Git地址:http://git.oschina.net/dogstar/PhalApi/tree/release
##1. Api+Domain+Model##
其实这样的三层结构和java中的web+service+dao比较像只是说web和api一个进行页面显示一个不进行页面显示这个区别,在着重讲一下这三层在Phalapi中分工是怎么样的,他们分别担当者什么样的角色,需要做什么样的事情.
###1.1 Api层###
为什么说Api层像java中的web层呢,因为他们有一个共同的特性就是接受请求和返回结果.只是可能说java中没有那么强烈,它会通过控制器吧请求转发到service层处理好了拿到结果在展示页面,所以Api更像担当这控制器的作用.
Api层中需要做的事情如下:
###1.2 Domain层###
Domain层主要负责的是具体的业务实现拿用户验证,一个Domain方法就是一个小的业务具体实现(注意尽量吧业务划分的小一点方便通用)
/**
* 用户验证
*/
public function checkDev($dId){
//通过ID 获取用户
$Model_Developers = new Model_Developers();
$dev = $Model_Developers->checkDevdId($dId);
//用户不存在处理
if(!$dev){
throw new PhalApi_Exception_BadRequest(T('No Dev'), -1);
}
}
###1.3 Model层###
Model层其实无需多讲也就是把数据库操作单独提炼出来,统一处理如下
/**
* 验证用户存不存在
*/
public function checkDevdId($dId){
return $this->getORM()->select('dId')->where('dId', $dId)->fetch();
}
##2. 三层结合使用的好处##
##3. 总结##
其实在刚刚接触这个框架的时候我也是特别不能理解这样划分的作用,在后面的开发中以及和别人的交流冲进行了一些尝试,发现确实这样用起来有很多的好处,也希望今天的教程也能让大家理解,这样的一种规范可以带来很多的好处并且尝试的去尝试和使用.
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!
官网QQ交流群:421032344 欢迎大家的加入!