亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > thinkPHP3.2.2框架行為擴展及demo示例

thinkPHP3.2.2框架行為擴展及demo示例

熱門標簽:h5 地圖標注 高識別電銷機器人 寶安400電話辦理 拉薩打電話機器人 沈陽人工智能電銷機器人公司 合肥外呼系統app 智能外呼電銷系統 電銷機器人-快迭智能 哈爾濱400電話辦理到易號網

本文實例講述了thinkPHP3.2.2框架行為擴展。分享給大家供大家參考,具體如下:

首先介紹一下行為擴展類,本人愚鈍,還是借用tp手冊上的來說:

行為(Behavior)是一個比較抽象的概念,你可以想象成在應用執行過程中的一個動作或者處理,在框架的執行流程中,各個位置都可以有行為產生,例如路由檢測是一個行為,靜態緩存是一個行為,用戶權限檢測也是行為,大到業務邏輯,小到瀏覽器檢測、多語言檢測等等都可以當做是一個行為,甚至說你希望給你的網站用戶的第一次訪問彈出Hello,world!這些都可以看成是一種行為,行為的存在讓你無需改動框架和應用,而在外圍通過擴展或者配置來改變或者增加一些功能。

而不同的行為之間也具有位置共同性,比如,有些行為的作用位置都是在應用執行前,有些行為都是在模板輸出之后,我們把這些行為發生作用的位置稱之為標簽(位),當應用程序運行到這個標簽的時候,就會被攔截下來,統一執行相關的行為,類似于AOP編程中的“切面”的概念,給某一個切面綁定相關行為就成了一種類AOP編程的思想。

那下面就入正題,講解一下行為(Behavior)的實例

讓行為工作有兩種方式:

1.通過在conf目錄下的tags.php文件  配置行為   通過\Think\Hook::listen(name);觸發行為

2.通過\Think\Hook::add(name,class_namespace) 注冊一個行為,然后觸發(注冊函數必須在觸發函數之前)

在我們講解實例之前,很有必要先講講行為是怎么觸發的。

行為觸發靠的是\Think\Hook::listen(name)方法,那方法里面到底做了什么,我們先看看源碼:

/**
 * 監聽標簽的插件
 * @param string $tag 標簽名稱
 * @param mixed $params 傳入參數
 * @return void
 */
/**
 * add by yangligao 2014/8/25
 * listen 個人覺得方法名稱取得不怎么好理解,看程序中就知道這個方法實際上就是看$tags中有沒有參數中的tag
 *   如果有,就觸發之;
 *   如果沒有,你懂的,過之(至少程序中是沒有做操作)。
 */
static public function listen($tag, $params=NULL) {
 if(isset(self::$tags[$tag])) {
  if(APP_DEBUG) {
   G($tag.'Start');
   trace('[ '.$tag.' ] --START--','','INFO');
  }
  foreach (self::$tags[$tag] as $name) {
   APP_DEBUG  G($name.'_start');
   $result = self::exec($name, $tag,$params);
   if(APP_DEBUG){
    G($name.'_end');
    trace('Run '.$name.' [ RunTime:'.G($name.'_start',$name.'_end',6).'s ]','','INFO');
   }
   if(false === $result) {
    // 如果返回false 則中斷插件執行
    return ;
   }
  }
  if(APP_DEBUG) { // 記錄行為的執行日志
   trace('[ '.$tag.' ] --END-- [ RunTime:'.G($tag.'Start',$tag.'End',6).'s ]','','INFO');
  }
 }
 // return; //thinkphp原始的樣式
 return $result;//筆者^_^自己添加的
}

這個方法里面記錄行為的一些運行狀態的值,函數最后一點筆者做了一點修改,只是讓這個方法有了一份返回值(而非返回空)

最重要的地方就是

$result = self::exec($name, $tag,$params);

這個地方就開始執行所謂的行為了,先看看exec方法的源碼

 /**
  * 執行某個插件
  * @param string $name 插件名稱
  * @param string $tag 方法名(標簽名)
  * @param Mixed $params 傳入的參數
  * @return void
  */
 /**
  * add by yangligao 2014/8/25
  * exec 執行文件
  */
 static public function exec($name, $tag,$params=NULL) {
  if('Behavior' == substr($name,-8) ){
   // 行為擴展必須用run入口方法
   $tag = 'run';
  }
//  file_put_contents('D:/1.txt',$name,FILE_APPEND );
  $addon = new $name();
  return $addon->$tag($params);
 }

這個方法所做的就是先判斷行為配置中的設定的類名中是否有Behavior這個字符串,如果有就執行一個叫run的方法

準備工作差不多了。下面動手試試實例

方法一:通過在conf目錄下的tags.php文件  配置行為   通過\Think\Hook::listen(name);觸發行為

我們先在Home/Conf下面準備tags.php配置文件

?php
return array(
  'app_app' => array('Home\Behavior\DemoShowHelloWorldBehavior'),
);

根據這個配置文件,我們還得在Home/Behavior下面準備DemoShowHelloWorldBehavior的類文件

?php
namespace Home\Behavior;
use Think\Controller;
/**
 * 這個文件的類可以繼承Controller類 這樣就可以使用assign方法
 * 這個方法框架里面:對你的返回值不理睬,只是用作判斷插件有沒有出錯
 * 出于某個目的,筆者對Hook::listen方法作了小修改 讓他可以返回值,或許會有點用
 */
class DemoShowHelloWorldBehavior extends Controller{
 public function run(){
  $return_string = '(Home\Behavior)font>DemoShowHelloWoldBehavior/font> is Running....^_^!hr>';
  $this->assign('behavior_assign','This is assigned by font>DemoShowHelloWoldBehavior/font>');
  return $return_string;
 }
}

這個類文件,我們是繼承的控制器,里面做了兩件事:

1.返回一個字符串

2.使用Controller方法的assign方法給模板賦值

然后我們來觸發這個行為,你只需要在控制器總寫上一下代碼以及在對應模板中輸出對應變量

$behaviorReturn = \Think\Hook::listen('app_app');

div>{$behavior_assign}/div>

這樣頁面就會輸出行為類中assign的變量值了,行為類的返回值這里沒有打印,你有興趣可以打印看看哦

方法二:.通過\Think\Hook::add(name,class_namespace) 注冊一個行為,然后觸發(注冊函數必須在觸發函數之前)

這個與方法一唯一的區別就是他不用定義tags.php文件,取而代之的是一個php語句(如下):

\Think\Hook::add('app_app', 'Home\\Behavior\\DemoShowHelloWorldBehavior');

其他的操作都相同。

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

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

您可能感興趣的文章:
  • Thinkphp5框架簡單實現鉤子(Hook)行為的方法示例
  • thinkPHP基于反射實現鉤子的方法分析
  • thinkPHP中鉤子的使用方法實例分析
  • thinkPHP中鉤子的兩種配置調用方法詳解
  • ThinkPHP行為擴展Behavior應用實例詳解
  • Thinkphp5行為使用方法匯總
  • 老生常談ThinkPHP中的行為擴展和插件(推薦)
  • thinkPHP5.0框架整體架構總覽【應用,模塊,MVC,驅動,行為,命名空間等】
  • Thinkphp 框架擴展之行為擴展原理與實現方法分析
  • thinkphp5.1 框架鉤子和行為用法實例分析

標簽:山東 林芝 成都 威海 梅州 巴中 張家口 泰州

巨人網絡通訊聲明:本文標題《thinkPHP3.2.2框架行為擴展及demo示例》,本文關鍵詞  thinkPHP3.2.2,框架,行為,擴展,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《thinkPHP3.2.2框架行為擴展及demo示例》相關的同類信息!
  • 本頁收集關于thinkPHP3.2.2框架行為擴展及demo示例的相關信息資訊供網民參考!
  • 推薦文章
    欧美a级大片| 国产成人精品综合| 一级女性大黄生活片免费| 欧美大片毛片aaa免费看| 青青青草影院 | 午夜在线亚洲| 午夜激情视频在线观看| 日韩免费在线视频| 可以免费看污视频的网站| 一级毛片视频免费| 日韩在线观看免费| 久久国产影视免费精品| 韩国三级视频网站| 日韩在线观看免费| 成人av在线播放| 国产91精品一区| 九九免费高清在线观看视频| 99热视热频这里只有精品| 国产一区免费在线观看| 黄色免费三级| 国产网站免费视频| 国产麻豆精品免费视频| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 韩国毛片基地| 97视频免费在线观看| 二级特黄绝大片免费视频大片| 国产网站在线| 国产网站在线| 欧美大片aaaa一级毛片| 免费国产在线观看不卡| 国产不卡福利| 久久精品道一区二区三区| 国产a一级| 日韩一级黄色片| 精品国产三级a∨在线观看| 国产一区二区精品| 九九精品久久| 999久久久免费精品国产牛牛| 国产a视频| 二级片在线观看| 午夜激情视频在线观看 | 天天做人人爱夜夜爽2020毛片| 欧美另类videosbestsex久久| 欧美大片a一级毛片视频| 夜夜操网| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 亚洲 激情| 精品久久久久久中文字幕2017| 日本特黄特黄aaaaa大片| 日韩欧美一及在线播放| 国产91精品一区二区| 国产伦精品一区二区三区无广告 | 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 九九精品久久| 夜夜操天天爽| 日本在线www| 欧美大片一区| 成人免费高清视频| 国产成+人+综合+亚洲不卡| a级毛片免费全部播放| 亚洲第一页色| 成人免费一级纶理片| 午夜在线影院| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产视频在线免费观看| 久久福利影视| 日韩专区在线播放| 国产亚洲精品成人a在线| 午夜家庭影院| 欧美爱爱网| 九九精品久久| 久久99这里只有精品国产| 国产不卡精品一区二区三区| 亚洲女初尝黑人巨高清在线观看| 青青久久精品| 国产激情一区二区三区| 欧美大片a一级毛片视频| 国产视频在线免费观看| 中文字幕一区二区三区精彩视频| 九九免费精品视频| 国产一级强片在线观看| 天天色色色| 国产视频久久久久| 九九热国产视频| 美女免费毛片| 午夜激情视频在线观看| 日韩在线观看网站| 深夜做爰性大片中文| 日本在线播放一区| 久久久久久久免费视频| 欧美日本免费| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美另类videosbestsex高清| 高清一级毛片一本到免费观看| 欧美激情在线精品video| 精品久久久久久中文字幕一区| 精品国产一区二区三区久久久狼| 天堂网中文字幕| 久久国产精品永久免费网站| 美女免费精品高清毛片在线视 | 国产一区二区精品尤物| 精品视频免费看| 日韩一级黄色| 国产韩国精品一区二区三区| 日本免费乱理伦片在线观看2018| 久草免费在线色站| 毛片高清| 一级女性全黄久久生活片| 日韩av成人| 青青久久网| 99色视频| 中文字幕一区二区三区精彩视频| 国产国语对白一级毛片| 尤物视频网站在线观看| 日本在线不卡免费视频一区| 国产国语在线播放视频| 黄色免费三级| 日本免费看视频| 精品视频在线观看视频免费视频| 亚欧视频在线| 可以在线看黄的网站| 韩国三级一区| 成人免费观看男女羞羞视频| 国产高清视频免费| 黄视频网站免费| 久久国产精品只做精品| 久久99中文字幕| 黄视频网站在线看| 国产精品1024永久免费视频| 91麻豆爱豆果冻天美星空| 精品视频在线看| 天堂网中文在线| 尤物视频网站在线观看| 久久99欧美| 欧美一区二区三区在线观看| 亚洲精品久久玖玖玖玖| 国产精品免费久久| 久草免费在线观看| 成人高清免费| 日本特黄特色aaa大片免费| 99热精品在线| 欧美激情在线精品video| 亚洲第一色在线| 一级女性全黄久久生活片| 可以在线看黄的网站| 久久久成人网| 日本免费看视频| 国产成人女人在线视频观看| 亚洲精品永久一区| 久久精品大片| 久久精品大片| 成人免费观看的视频黄页| 韩国三级香港三级日本三级| 韩国三级视频网站| 国产一区二区精品在线观看| 日韩av成人| 午夜激情视频在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 韩国毛片免费| 成人免费高清视频| 91麻豆tv| 尤物视频网站在线观看| 日韩在线观看视频免费| 日本特黄特色aaa大片免费| 日本在线不卡视频| 国产精品自拍在线| 日韩在线观看免费完整版视频| 午夜精品国产自在现线拍| 成人免费观看男女羞羞视频| 免费国产在线视频| 精品久久久久久综合网| 欧美激情一区二区三区在线| 国产不卡在线观看| 91麻豆精品国产片在线观看| 四虎影视久久| 午夜欧美成人香蕉剧场| 国产一区二区精品| 中文字幕一区二区三区精彩视频| 日本特黄特色aa大片免费| 日韩专区在线播放| 国产一区二区精品| 国产极品精频在线观看| 国产一区二区精品久久| 天堂网中文在线| 国产网站在线| 美女被草网站| 色综合久久天天综线观看| 精品视频一区二区三区| 美女被草网站| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日本在线播放一区| 毛片高清| 日韩中文字幕一区二区不卡| 日韩在线观看免费完整版视频| 欧美电影免费看大全| 日日日夜夜操| 国产一区二区精品| 成人免费福利片在线观看| 久久成人亚洲| a级黄色毛片免费播放视频|