thinkphp模型層Model、Logic、Service講解

thinkyoung發表於2015-09-01

thinkphp模型層Model、Logic、Service講解

時間:2014-08-24 15:54:56   編輯:一切隨緣   文章來源:php教程網 已閱讀:771 次
 
 

        thinkphp模型層Model、Logic、Service講解

        ThinkPHP支援模型的分層 ,除了Model層之外,我們可以專案的需要設計和建立其他的模型層。

        通常情況下,不同的分層模型仍然是繼承系統的ThinkModel類或其子類,所以,其基本操作和Model類的操作是一致的。

        例如在Home模組的設計中需要區分資料層、邏輯層、服務層等不同的模型層,我們可以在模組目錄下面建立Model、Logic和Service目錄,把對使用者表的所有模型操作分成三層:

            資料層:HomeModelUserModel 用於定義資料相關的自動驗證和自動完成和資料存取介面
            邏輯層:HomeLogicUserLogic 用於定義使用者相關的業務邏輯
            服務層:HomeServiceUserService 用於定義使用者相關的服務介面等

        三個模型層的定義如下:

        Model類:HomeModelUserModel.class.php

            namespace HomeModel;
            class UserModel extends ThinkModel{
            }

        例項化方法:D(`User`);

        Logic類:HomeLogicUserLogic.class.php

            namespace HomeLogic;
            class UserLogic extends ThinkModel{
            }

        例項化方法:D(`User`,`Logic`);

        Api類:HomeApiUserApi.class.php

            namespace HomeApi;
            class UserApi extends ThinkModel{
            }

        例項化方法:D(`User`,`Api`);

        D方法預設操作的模型層由DEFAULT_M_LAYER引數配置,我們可以改變預設操作的模型層為Logic層,例如:

            `DEFAULT_M_LAYER` => `Logic`, // 預設的模型層名稱

        這樣,當我們呼叫:

            $User = D(`User`);

        的時候其實是例項化的 UserLogic類,而不是UserModel類。
 


相關文章