ThinkPHP支持模型的(de)分(fēn)層 ,除了≠÷♥(le)Model層之外(wài),我們可(kě↓∏₹✔)以項目的(de)需要(yào)設計(jì)和(hé)創建其他(t♥ā)的(de)模型層。
通(tōng)常情況下(xià),不(bù)同的≥ε¶•(de)分(fēn)層模型仍然是(shì)繼承系統的(de)\Thεφ≤✔ink\Model類或其子(zǐ)類,所以,其基Ωα本操作(zuò)和(hé)Model類的(de)操作(zuò)是®↑ ↕(shì)一(yī)緻的(de)。
例如(rú)在Home模塊的(de)設計(jì)中需要(y✔←©ào)區(qū)分(fēn)數(shù)據層、邏輯層、服務層等不(bφΩε ù)同的(de)模型層,我們可(kě)以&$' 在模塊目錄下(xià)面創建Model、Logic和(hé)Service目錄,把對(duì)用(yòng)戶表的(de)所有(y≥•>ǒu)模型操作(zuò)分(fēn)成三層:
- 數(shù)據層:Home\Model\UserModel 用(yòng) ∞₽于定義數(shù)據相(xiàng)關的(∏∏de)自(zì)動驗證和(hé)自(zì♦↓)動完成和(hé)數(shù)據存取接口
- 邏輯層:Home\Logic\UserL♥↕ogic 用(yòng)于定義用(yòng)戶相(x✘↓≈iàng)關的(de)業(yè)務邏輯
- 服務層:Home\Service\UserService≤× ∑ 用(yòng)于定義用(yòng)戶相(xiàng)關的(d♦®e)服務接口等
三個(gè)模型層的(de)定義如(rú)下(xià):
Model類:Home\Model\UserModel.c☆λ↓₽lass.php
namespace Home\Model;class UserModel extends \Think\Model{}
實例化(huà)方法:D('User');
Logic類:Home\Logic\UserLogic.cla✘ss.php
namespace Home\Logic;class UserLogic extends \Think\Model{}
實例化(huà)方法:D('User','Logic');
Api類:Home\Api\UserApi.clφ₹ass.php
namespace Home\Api;class UserApi extends \Think\Model{}
實例化(huà)方法:D('User','Api');
D方法默認操作(zuò)的(de)模型層由DEFAULT_M_LAYER參數(shù)配置,我們可(kě)以改變默認操作(zuò)的(de)模型層為₩•(wèi)Logic層,例如(rú):
'DEFAULT_M_LAYER' => 'Logic', // 默認的(de)模型層名稱
這(zhè)樣,當我們調用(yòng):€¶γε
$User = D('User');
的(de)時(shí)候其實是(shì)實例化(huà)的₽÷(de) UserLogic類,而不(bù)是(shì)UserModel類。




