国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
CBD模式

ThinkPHP從3.0版本開始引入了全新的CBD(核心Core+行為Behavior+驅(qū)動Driver)架構(gòu)模式

Core(核心)

ThinkPHP的核心部分包括核心函數(shù)庫、慣例配置、核心類庫(包括基礎(chǔ)類和內(nèi)置驅(qū)動及核心行為),這些是ThinkPHP必不可少的部分。

  1. ThinkPHP/Common/functions.php // 核心函數(shù)庫

  2. ThinkPHP/Conf/convention.php // 慣例配置文件

  3. ThinkPHP/Conf/debug.php // 慣例調(diào)試配置文件

  4. ThinkPHP/Mode/common.php // 普通模式定義文件

  5. ThinkPHP/Library/Think // 核心類庫包

  6. ThinkPHP/Library/Behavior // 系統(tǒng)行為類庫

  7. ThinkPHP/Library/Think/App.class.php // 核心應(yīng)用類

  8. ThinkPHP/Library/Think/Behavior.class.php // 基礎(chǔ)行為類

  9. ThinkPHP/Library/Think/Cache.class.php // 核心緩存類

  10. ThinkPHP/Library/Think/Controller.class.php // 基礎(chǔ)控制器類

  11. ThinkPHP/Library/Think/Db.class.php // 數(shù)據(jù)庫操作類

  12. ThinkPHP/Library/Think/Dispatcher.class.php // URL解析調(diào)度類

  13. ThinkPHP/Library/Think/Exception.class.php // 系統(tǒng)基礎(chǔ)異常類

  14. ThinkPHP/Library/Think/Hook.class.php // 系統(tǒng)鉤子類

  15. ThinkPHP/Library/Think/Log.class.php // 系統(tǒng)日志記錄類

  16. ThinkPHP/Library/Think/Model.class.php // 系統(tǒng)基礎(chǔ)模型類

  17. ThinkPHP/Library/Think/Route.class.php // 系統(tǒng)路由類

  18. ThinkPHP/Library/Think/Storage.class.php // 系統(tǒng)存儲類

  19. ThinkPHP/Library/Think/Template.class.php // 內(nèi)置模板引擎類

  20. ThinkPHP/Library/Think/Think.class.php // 系統(tǒng)引導(dǎo)類

  21. ThinkPHP/Library/Think/View.class.php // 系統(tǒng)視圖類

Driver(驅(qū)動)

在需要寫入數(shù)據(jù)的功能類庫中都采用了驅(qū)動化的設(shè)計思想,所以使得新的框架能夠輕松滿足分布式部署的需求,對云平臺的支持可以更簡單的實現(xiàn)了。

驅(qū)動包括

  1. ThinkPHP/Library/Think/Cache/Driver // 緩存驅(qū)動類庫

  2. ThinkPHP/Library/Think/Db/Driver // 數(shù)據(jù)庫驅(qū)動類庫

  3. ThinkPHP/Library/Think/Log/Driver // 日志記錄驅(qū)動類庫

  4. ThinkPHP/Library/Think/Session/Driver // Session驅(qū)動類庫

  5. ThinkPHP/Library/Think/Storage/Driver // 存儲驅(qū)動類庫

  6. ThinkPHP/Library/Think/Template/Driver // 第三方模板引擎驅(qū)動類庫

  7. ThinkPHP/Library/Think/Template/TagLib // 內(nèi)置模板引擎標(biāo)簽庫擴展類庫

Behavior(行為)

行為(Behavior)是ThinkPHP擴展機制中比較關(guān)鍵的一項擴展,行為既可以獨立調(diào)用,也可以綁定到某個標(biāo)簽(位)中進(jìn)行偵聽。

系統(tǒng)標(biāo)簽位

系統(tǒng)核心提供的標(biāo)簽位置包括(按照執(zhí)行順序排列):

  • app_init 應(yīng)用初始化標(biāo)簽位

  • module_check 模塊檢測標(biāo)簽位(3.2.1版本新增

  • path_info PATH_INFO檢測標(biāo)簽位

  • app_begin 應(yīng)用開始標(biāo)簽位

  • action_name 操作方法名標(biāo)簽位

  • action_begin 控制器開始標(biāo)簽位

  • view_begin 視圖輸出開始標(biāo)簽位

  • view_template 視圖模板解析標(biāo)簽位

  • view_parse 視圖解析標(biāo)簽位

  • template_filter 模板解析過濾標(biāo)簽位

  • view_filter 視圖輸出過濾標(biāo)簽位

  • view_end 視圖輸出結(jié)束標(biāo)簽位

  • action_end 控制器結(jié)束標(biāo)簽位

  • app_end 應(yīng)用結(jié)束標(biāo)簽位

在每個標(biāo)簽位置,可以配置多個行為,行為的執(zhí)行順序按照定義的順序依次執(zhí)行。


核心行為

系統(tǒng)的很多核心功能也是采用行為擴展組裝的,對于滿足項目日益紛繁復(fù)雜的需求和定制底層框架提供了更多的方便和可能性。

核心行為位于 ThinkPHP/Behavior/ 目錄下面,框架核心內(nèi)置的行為包括如下:

行為名稱說明對應(yīng)標(biāo)簽位置
BuildLite生成Lite文件(3.2.1版本新增)app_init
ParseTemplate模板文件解析,并支持第三方模板引擎驅(qū)動view_parse
ShowPageTrace頁面Trace功能行為,完成頁面Trace功能view_end
ShowRuntime運行時間顯示行為,完成運行時間顯示view_filter
TokenBuild令牌生成行為,完成表單令牌的自動生成view_filter
ReadHtmlCache讀取靜態(tài)緩存行為app_init
WriteHtmlCache生成靜態(tài)緩存行為view_filter


行為定義

自定義的擴展行為可以放在核心或者應(yīng)用目錄,只要遵循命名空間的定義規(guī)則即可。 行為類的命名采用:行為名稱(駝峰法,首字母大寫)+Behavior 行為類的定義方式如下:


3.2.1版本開始,行為類的定義無需繼承Think\Behavior類,

// 行為擴展的執(zhí)行入口必須是run

行為類必須定義執(zhí)行入口方法run,由于行為的調(diào)用機制影響,run方法不需要任何返回值,所有返回都通過引用返回。

run方法的參數(shù)只允許一個,但可以傳入數(shù)組。


單獨執(zhí)行

行為的調(diào)用不一定要放到標(biāo)簽才能調(diào)用,如果需要的話,我們可以在控制器中或者其他地方直接調(diào)用行為。例如,我們可以把用戶權(quán)限檢測封裝成一個行為類,例如:

namespace Home\Behavior;use Think\Behavior;class AuthCheckBehavior extends Behavior {     // 行為擴展的執(zhí)行入口必須是run     public function run(&$return){         if(C('USER_AUTH_ON')) {             // 進(jìn)行權(quán)限認(rèn)證邏輯 如果認(rèn)證通過 $return = true;             // 否則用halt輸出錯誤信息         }     }}

定義了AuthCheck行為后,我們可以在控制器的_initialize方法中直接用下面的方式調(diào)用:

B('Home\Behavior\AuthCheck');


























=========================================

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
系統(tǒng)發(fā)生錯誤
Thinkphp中import方法用法
自動加載
ThinkPHP 框架執(zhí)行流程分析
ThinkPHP的分頁功能使用介紹,超級詳細(xì)的說明 | XCoder Studio
thinkphp模型層Model、Logic、Service講解
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服