最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ThinkPHP3.1新特性之多層MVC的支持

 更新時間:2014年06月19日 11:18:01   投稿:shichen2014  
默認的模型層由Model類構(gòu)成,但是隨著項目的增大和業(yè)務體系的復雜化,單一的模型層很難解決要求,從3.1開始推出了多層Model的支持。這篇文章主要介紹了ThinkPHP3.1多層MVC的支持,需要的朋友可以參考下

1.模型(Model)層:默認的模型層由Model類構(gòu)成,但是隨著項目的增大和業(yè)務體系的復雜化,單一的模型層很難解決要求,從3.1開始推出了多層Model的支持,設(shè)計思路很簡單,不同的模型層仍然都繼承自系統(tǒng)的Model類,但是在目錄結(jié)構(gòu)和命名規(guī)范上做了區(qū)分,例如在某個項目設(shè)計中需要區(qū)分數(shù)據(jù)層、邏輯層、服務層等不同的模型層,我們可以在項目的Lib目錄下面創(chuàng)建Model、Logic和Service目錄,把對用戶表的所有模型操作分成三層:

數(shù)據(jù)層:Model/UserModel 用于定義數(shù)據(jù)相關(guān)的自動驗證和自動完成和數(shù)據(jù)存取接口
邏輯層:Logic/UserLogic 用于定義用戶相關(guān)的業(yè)務邏輯
服務層:Service/UserService 用于定義用戶相關(guān)的服務接口等

而這三個模型操作類統(tǒng)一都繼承Model類即可,這樣對用戶數(shù)據(jù)的操作就非常清晰,在調(diào)用的時候,也可以用內(nèi)置的D方法很方便的調(diào)用:

D('User') //實例化UserModel
D('User','Logic') //實例化UserLogic
D('User','Service') //實例化UserService

對模型層的分層劃分是很靈活的,開發(fā)人員可以根據(jù)項目的需要自由定義分層。

2.視圖(View)層:由模板和模板引擎組成,在模板中可以直接使用PHP代碼,模板引擎的設(shè)計會在后面講述,通過驅(qū)動也可以支持其他第三方的模板引擎。視圖的多層可以簡單的通過目錄區(qū)分,例如:

Tpl/default/User/add.html
Tpl/blue/User/add.html

3.控制器(Controller)層:ThinkPHP的控制器層由核心控制器和業(yè)務控制器組成,核心控制器由系統(tǒng)內(nèi)部的App類完成,負責應用(包括模塊和操作)的調(diào)度控制,包括HTTP請求攔截和轉(zhuǎn)發(fā)、加載配置等,業(yè)務控制器則由用戶定義的Action類完成。3.1版本開始增加了多層業(yè)務控制器的支持。其實現(xiàn)原理和模型的分層類似,例如業(yè)務控制器和事件控制器:

Action/UserAction //用于用戶的業(yè)務邏輯控制和調(diào)度
Event/UserEvent //用于用戶的事件響應操作

UserAction負責外部交互響應,通過URL請求響應,例如 http://serverName/User/index,而UserEvent 負責內(nèi)部的事件響應,并且只能在內(nèi)部調(diào)用

 A('User','Event');

所以是和外部隔離的。多層控制器的劃分也不是強制的,可以根據(jù)項目的需要自由分層??刂破鞣謱永锩婵梢愿鶕?jù)需要調(diào)用分層模型,也可以調(diào)用不同的目錄的視圖模板。
同時,R方法也可以支持多層控制器的調(diào)用了,增加了第三個參數(shù)表示控制器的層名稱,例如:

R('User/register',array(15),'Event');

表示調(diào)用UserEvent控制器的register方法,并傳入?yún)?shù)15.
在MVC三層中,ThinkPHP并不依賴M或者V,甚至可以只有C或者只有V,這個在ThinkPHP的設(shè)計里面是一個很重要的用戶體驗設(shè)計,用戶只需要定義視圖,在沒有C的情況下也能自動識別。

相關(guān)文章

  • laravel中的一些簡單實用功能

    laravel中的一些簡單實用功能

    這篇文章主要給大家介紹了關(guān)于laravel中一些簡單實用功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • Laravel框架實現(xiàn)定時Task Scheduling例子

    Laravel框架實現(xiàn)定時Task Scheduling例子

    今天小編就為大家分享一篇Laravel框架實現(xiàn)定時Task Scheduling例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 純PHP生成的一個樹葉圖片畫圖例子

    純PHP生成的一個樹葉圖片畫圖例子

    這篇文章主要介紹了純PHP生成的一個樹葉圖片畫圖例子,希望可以帶給使用PHP進行圖像編程的朋友一些幫助。
    2014-04-04
  • php兩個多維數(shù)組組合遍歷的實例

    php兩個多維數(shù)組組合遍歷的實例

    下面小編就為大家?guī)硪黄猵hp兩個多維數(shù)組組合遍歷的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • thinkPHP5 ajax提交表單操作實例分析

    thinkPHP5 ajax提交表單操作實例分析

    這篇文章主要介紹了thinkPHP5 ajax提交表單操作,結(jié)合實例形式分析了thinkPHP5的ajax提交表單操作技巧,并附帶說明了表單提交中的參數(shù)傳遞與處理技巧,需要的朋友可以參考下
    2017-11-11
  • Yii2中Restful API原理實例分析

    Yii2中Restful API原理實例分析

    這篇文章主要介紹了Yii2中Restful API原理,基于rest部分源碼分析了Restful的原理、使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2016-07-07
  • THINKPHP3.2使用soap連接webservice的解決方法

    THINKPHP3.2使用soap連接webservice的解決方法

    這篇文章主要為大家詳細介紹了THINKPHP3.2使用soap連接webservice的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 一個簡單安全的PHP驗證碼類、PHP驗證碼

    一個簡單安全的PHP驗證碼類、PHP驗證碼

    這篇文章主要介紹了一個簡單安全的PHP驗證碼類 PHP驗證碼的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • thinkphp中ajax與php響應過程詳解

    thinkphp中ajax與php響應過程詳解

    這篇文章主要介紹了thinkphp中ajax與php響應過程,以實例形式詳細分析了ThinkPHP框架中Ajax響應方式的處理原理及實現(xiàn)過程,非常具有實用價值,需要的朋友可以參考下
    2014-12-12
  • ThinkPHP利用PHPMailer實現(xiàn)郵件發(fā)送實現(xiàn)代碼

    ThinkPHP利用PHPMailer實現(xiàn)郵件發(fā)送實現(xiàn)代碼

    本文章介紹了關(guān)于在thinkphp中利用了phpmailer來實現(xiàn)郵件發(fā)送的詳細教程,有需要的朋友可以參考一下
    2013-09-09

最新評論

青阳县| 邳州市| 江口县| 开封市| 石嘴山市| 边坝县| 乐东| 邛崃市| 榆林市| 金平| 永登县| 南澳县| 宁陵县| 南阳市| 辽宁省| 山西省| 云龙县| 信丰县| 抚顺县| 龙陵县| 平舆县| 兴和县| 屯昌县| 濉溪县| 望江县| 抚松县| 信宜市| 大宁县| 寿宁县| 曲阳县| 乐安县| 若尔盖县| 瑞金市| 石棉县| 保康县| 保山市| 柯坪县| 磐石市| 河间市| 晋中市| 伊春市|