模型(Model)层

模型(Model)层
默认的模型层由Model类构成,但是随着项目的增大和业务体系的复杂化,单一的模型层很难解决要
求,ThinkPHP支持多层Model,设计思路很简单,不同的模型层仍然都继承自系统的Model类,但是在
目录结构和命名规范上做了区分。
例如在某个项目设计中需要区分数据层、逻辑层、服务层等不同的模型层,我们可以在模块目录下面创建
Model 、Logic 和Service 目录,把对用户表的所有模型操作分成三层:
1. 数据层:Model/UserModel 用于定义数据相关的自动验证和自动完成和数据存取接口
2. 逻辑层:Logic/UserLogic 用于定义用户相关的业务逻辑
3. 服务层:Service/UserService 用于定义用户相关的服务接口等
而这三个模型操作类统一都继承Model类即可,例如:
ThinkPHP3.2.3完全开发手册
本文档使用 看云 构建 - 29 -
数据层: Home/Model/UserModel.class.php
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
}
逻辑层: Home/Logic/UserLogic.class.php
namespace Home\Logic;
use Think\Model;
class UserLogic extends Model{
}
服务层: Home/Service/UserService.class.php
namespace Home\Service;
use Think\Model;
class UserService extends Model{
}
这样区分不同的模型层之后对用户数据的操作就非常清晰,在调用的时候,我们也可以用内置的D方法很
方便的调用:
D('User') //实例化UserModel
D('User','Logic') //实例化UserLogic
D('User','Service') //实例化UserService
默认的模型层是Model,我们也可以更改设置,例如:
'DEFAULT_M_LAYER' => 'Logic', // 更改默认的模型层名称为Logic
更改之后,实例化的时候需要改成:
D('User') //实例化UserLogic
D('User','Model') //实例化UserModel
D('User','Service') //实例化UserService
对模型层的分层划分是很灵活的,开发人员可以根据项目的需要自由定义和增加模型分层,你也完全可
以只使用Model层。

 

posted @ 2017-12-19 10:40  sky20080101  阅读(869)  评论(0)    收藏  举报