這篇文章主要介紹“講解Thinkphp 框架擴(kuò)展之行為擴(kuò)展原理與實(shí)現(xiàn)方法”,在日常操作中,相信很多人在講解Thinkphp 框架擴(kuò)展之行為擴(kuò)展原理與實(shí)現(xiàn)方法問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”講解Thinkphp 框架擴(kuò)展之行為擴(kuò)展原理與實(shí)現(xiàn)方法”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
系統(tǒng)核心提供的標(biāo)簽位置包括下面幾個(gè)(按照?qǐng)?zhí)行順序排列):
app_init | 應(yīng)用初始化標(biāo)簽位 |
path_info | PATH_INFO檢測(cè)標(biāo)簽位 |
app_begin | 應(yīng)用開始標(biāo)簽位 |
action_name | 操作方法名標(biāo)簽位 |
action_begin | 控制器開始標(biāo)簽位 |
view_begin | 視圖輸出開始標(biāo)簽位 |
view_parse | 視圖解析標(biāo)簽位 |
template_filter | 模板內(nèi)容解析標(biāo)簽位 |
view_filter | 視圖輸出過濾標(biāo)簽位 |
view_end | 視圖輸出結(jié)束標(biāo)簽位 |
action_end | 控制器結(jié)束標(biāo)簽位 |
app_end | 應(yīng)用結(jié)束標(biāo)簽位 |
在每個(gè)標(biāo)簽位置,可以配置多個(gè)行為定義,行為的執(zhí)行順序按照定義的順序依次執(zhí)行。除非前面的行為里面中斷執(zhí)行了(某些行為可能需要中斷執(zhí)行,例如檢測(cè)機(jī)器人或者非法執(zhí)行行為),否則會(huì)繼續(xù)下一個(gè)行為的執(zhí)行。 行為定義: 通過Common\Conf\tags.php配置文件定義,格式如下:
<?php return array( 'action_begin'=>array('Home\\Behaviors\\TestBehavior','Home\\Behaviors\\Test1Behavior'), );
上面注冊(cè)了兩個(gè)行為,分別是Home模塊下的test和test1行為,類文件位于Home模塊目錄下的Behaviors目錄,可以自定義目錄。
行為必須是一個(gè)包含命名空間路徑的類,如上的 Home\Behaviors\TestBehavior 對(duì)應(yīng)的類是 Home/Behaviors/TestBehavior.class.php。
除了這些系統(tǒng)內(nèi)置標(biāo)簽之外,開發(fā)人員還可以在應(yīng)用中添加自己的應(yīng)用標(biāo)簽。 比如在控制器的_initialize方法中:
\Think\Hook::add('action_begin','Home\\Behaviors\\TestBehavior'); //同時(shí)添加多個(gè)行為,只要將第二個(gè)參數(shù)換成數(shù)組即可。
行為類的定義,以上面的test行為為例:
<?php namespace Home\Behaviors; class TestBehavior extends \Think\Behavior{ //行為執(zhí)行入口 public function run(&$param){ } }
行為類建議繼承\(zhòng)Think\Behavior,必須實(shí)現(xiàn)run(&$param)
方法,行為是通過這個(gè)方法執(zhí)行的。
行為的觸發(fā): 只要在合適的地方通過以下代碼
\Think\Hook::listen('標(biāo)簽名'[,參數(shù)]); // 或者 // tag('標(biāo)簽名'[,參數(shù)]);
當(dāng)應(yīng)用執(zhí)行到這個(gè)地方的時(shí)候?qū)⒆詣?dòng)觸發(fā)指定標(biāo)簽名下的所有行為類。
isten方法可以傳入并且只接受一個(gè)參數(shù),如果需要傳入多個(gè)參數(shù),請(qǐng)使用數(shù)組,該參數(shù)為引用傳值,所以只能傳入變量。 參數(shù)可以被run(&$param)
中的$param
接收。
到此,關(guān)于“講解Thinkphp 框架擴(kuò)展之行為擴(kuò)展原理與實(shí)現(xiàn)方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
分享題目:講解Thinkphp框架擴(kuò)展之行為擴(kuò)展原理與實(shí)現(xiàn)方法-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://chinadenli.net/article32/idjsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、外貿(mào)建站、網(wǎng)站營(yíng)銷、用戶體驗(yàn)、網(wǎng)站改版、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)