【小(xiǎo)編推薦】ThinkPHP3.2—★≤‌↕—模型分(fēn)層

2014-06-26   |&©≥ ÷nbsp;  發布者:梁國(guó)芳&nb©φ"sp;  |  &nbsφ≥p;查看(kàn):3320次

Thinkphp

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à)面創建ModelLogic和(hé)Service目錄,把對(duì)用(yòng)戶表的(de)所有(y≥•>ǒu)模型操作(zuò)分(fēn)成三層:

三個(gè)模型層的(de)定義如(rú)下(xià):

Model類:Home\Model\UserModel.c☆λ↓₽lass.php

  1. namespace Home\Model;
  2. class UserModel extends \Think\Model{
  3.  
  4. }

實例化(huà)方法:D('User');

Logic類:Home\Logic\UserLogic.cla‍✘ss.php

  1. namespace Home\Logic;
  2. class UserLogic extends \Think\Model{
  3.  
  4. }

實例化(huà)方法:D('User','Logic');

Api類:Home\Api\UserApi.clφ₹ass.php

  1. namespace Home\Api;
  2. class UserApi extends \Think\Model{
  3.  
  4. }

實例化(huà)方法:D('User','Api');

D方法默認操作(zuò)的(de)模型層由DEFAULT_M_LAYER參數(shù)配置,我們可(kě)以改變默認操作(zuò)的(de)模型層為₩•(wèi)Logic層,例如(rú):

  1. 'DEFAULT_M_LAYER' => 'Logic', // 默認的(de)模型層名稱

這(zhè)樣,當我們調用(yòng):€¶γε

  1. $User = D('User');

的(de)時(shí)候其實是(shì)實例化(huà)的₽÷(de) UserLogic類,而不(bù)是(shì)UserModel類。