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

Thinkphp 框架擴展之行為擴展原理與實現(xiàn)方法分析

 更新時間:2020年04月23日 10:28:00   作者:人生如初見_張默  
這篇文章主要介紹了Thinkphp 框架擴展之行為擴展,結合實例形式分析了Thinkphp 框架行為擴展相關原理、實現(xiàn)方法及操作注意事項,需要的朋友可以參考下

本文實例講述了Thinkphp 框架擴展之行為擴展原理與實現(xiàn)方法。分享給大家供大家參考,具體如下:

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

app_init 應用初始化標簽位
path_info PATH_INFO檢測標簽位
app_begin 應用開始標簽位
action_name 操作方法名標簽位
action_begin 控制器開始標簽位
view_begin 視圖輸出開始標簽位
view_parse 視圖解析標簽位
template_filter 模板內容解析標簽位
view_filter 視圖輸出過濾標簽位
view_end 視圖輸出結束標簽位
action_end 控制器結束標簽位
app_end 應用結束標簽位

在每個標簽位置,可以配置多個行為定義,行為的執(zhí)行順序按照定義的順序依次執(zhí)行。除非前面的行為里面中斷執(zhí)行了(某些行為可能需要中斷執(zhí)行,例如檢測機器人或者非法執(zhí)行行為),否則會繼續(xù)下一個行為的執(zhí)行。 行為定義: 通過Common\Conf\tags.php配置文件定義,格式如下:

<?php
return array(
  'action_begin'=>array('Home\\Behaviors\\TestBehavior','Home\\Behaviors\\Test1Behavior'), 
);

上面注冊了兩個行為,分別是Home模塊下的test和test1行為,類文件位于Home模塊目錄下的Behaviors目錄,可以自定義目錄。

行為必須是一個包含命名空間路徑的類,如上的 Home\Behaviors\TestBehavior 對應的類是 Home/Behaviors/TestBehavior.class.php。

除了這些系統(tǒng)內置標簽之外,開發(fā)人員還可以在應用中添加自己的應用標簽。 比如在控制器的_initialize方法中:

\Think\Hook::add('action_begin','Home\\Behaviors\\TestBehavior');
//同時添加多個行為,只要將第二個參數(shù)換成數(shù)組即可。

行為類的定義,以上面的test行為為例:

<?php
namespace Home\Behaviors;
class TestBehavior extends \Think\Behavior{
  //行為執(zhí)行入口
  public function run(&$param){
 
  }
}

行為類建議繼承\Think\Behavior,必須實現(xiàn)run(&$param)方法,行為是通過這個方法執(zhí)行的。

行為的觸發(fā): 只要在合適的地方通過以下代碼

\Think\Hook::listen('標簽名'[,參數(shù)]);
// 或者
// tag('標簽名'[,參數(shù)]);

當應用執(zhí)行到這個地方的時候將自動觸發(fā)指定標簽名下的所有行為類。

isten方法可以傳入并且只接受一個參數(shù),如果需要傳入多個參數(shù),請使用數(shù)組,該參數(shù)為引用傳值,所以只能傳入變量。 參數(shù)可以被run(&$param)中的$param接收。

更多關于thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。

相關文章

最新評論

西安市| 慈利县| 辰溪县| 石门县| 贵南县| 香港| 江津市| 龙胜| 乌海市| 龙门县| 绥阳县| 临夏县| 青阳县| 阿合奇县| 专栏| 内乡县| 禹州市| 阿合奇县| 泰宁县| 通江县| 塔城市| 景德镇市| 安国市| 磐安县| 文登市| 嘉禾县| 肥东县| 汨罗市| 祁阳县| 怀安县| 镇赉县| 克山县| 山西省| 新巴尔虎右旗| 扎鲁特旗| 淮南市| 鹤庆县| 吉首市| 肥乡县| 胶南市| 交口县|