婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > thinkphp的鉤子的兩種配置和兩種調用方法

thinkphp的鉤子的兩種配置和兩種調用方法

熱門標簽:安裝電銷外呼系統 常州地圖標注服務商 新河科技智能外呼系統怎么樣 衡水外呼系統平臺 注冊400電話申請 福州人工外呼系統哪家強 百度商鋪地圖標注 釘釘打卡地圖標注 地圖標注平臺怎么給錢注冊

thinkphp的鉤子行為類是一個比較難以理解的問題,網上有很多寫thinkphp鉤子類的文章,我也是根據網上的文章來設置thinkphp的鉤子行為的,但根據這些網上的文章,我在設置的過程中,嘗試了十幾次都沒有成功,不過,我還是沒有放棄,最后還是在一邊調節細節,一邊試驗的過程中實現了鉤子行為的設置。下面是我個人的設置經驗,在這里跟大家分享一下。

個人做了兩種設置,都試驗成功了,一個簡單點,在thinkphp的核心文件中模仿核心行為類添加了另一個行為類,下面是截圖:

我的虛擬主機配置文件夾是D:/think

Thinkphp是tp框架文件夾,配置過tp框架應該都知道Library是tp放核心文件的文件夾,Behavior文件夾則是tp的鉤子行為類文件的核心文件夾,里面放置著很多行為類文件,我只是模仿這些鉤子行為類文件在里面建了一個鉤子行為類文件adBehavior.class.php,內容如下:

?php
namespace Behavior;
class adBehavior{
 function run($arg){
//在此介紹下,run必須的 ,細心的會在Think核心找到Behavior.class.php里面有這樣一句話 abstract public function run($params); 
 echo '我是一條'.$arg['name'].'廣告,'.$arg['value'].'代言';
 }
}

設置好了自定義的鉤子行為類之后,我們接下來就要利用這個鉤子行為類促發鉤子的行為了,```鉤子的行為```說白了其實就是促發鉤子行為類的run方法里面的代碼執行,我這里只是簡單的輸出run方法參數的內容,在應用中的,大家可以自由發揮。

下面是促發行為的操作:

解釋一下:我這里是Home模塊下面的IndexController控制器的登錄方法

namespace Home\Controller;
use Think\Controller;
use Think\Hook;//引進促發鉤子行為的類,是為下面的Hook::add()調用做伏筆的
class IndexController extends Controller {
 public function login(){
 //這里我設置一個ad行為的標簽,也就是給我自定義的adBehavior鉤子行為類添加一個促發行為的標識
 Hook::add('ad','Behavior\\adBehavior');
 //第一個是執行標簽的名稱,第二個參數是行為的類的地址
 Hook::add('test', "Home\\Behaviors\\testBehavior");
 //Hook::add('test2', "Home\\Behaviors\\testBehavior");
 $param=array('name'=>'testBehavior');
 $param2=array('LIS'=>'LLISTION');
 $param3=array('music'=>'cangjingshikong');
 $this->assign('param',$param);
 $this->assign('param',$param2);
 $this->assign('param',$param3);
 $this->display();
 }

下面是login模板內容:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
 title>ThinkPHP 行為(Behavior)擴展以及插件(Plug or Hook)詳解(含實例)
 /title>
 meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 meta name="description" content="Hook使用方法" />
/head>
body>
h1>How to used?/h1>
{:hook('ad', array('name'=>'AV','value'=>'*老師'))}
div>————————————————分割線1——————————————————/div>
div style="font-weight: bold ;color: #00ff00">{:hook('ad', array('name'=>'MV','value'=>'蒼井空老師'))}/div>
div>————————————————分割線2——————————————————/div>
 !--hook函數第一個參數是標簽的名稱,第二個參數隨意-->
 !--tag函數第一個參數是標簽的名稱,第二個一定是變量,因為tag函數是引址傳遞的參數-->
div>hook函數:{:hook('test', array('name'=>'World'))}hr/>/div>
div>tag函數:{:tag('mv',$param)}hr/>/div>
hr/>
div>tag函數:{:tag('action_begin',$param)}/div>
/body>
/html>

這里的路徑我就不寫了吧,一般對tp框架了解的人都知道,這個模板login.html放在哪里。

關于這個模板的內容,我已經提前把下面要講述的另一種設置鉤子行為類方法的內容也放在這里了,大家可以自行測試一下調用這個模板,如果你跟著我的思路設置了,我想它應該會輸出。

廢話不多說,下面是第二種自己設置行為類的方法,這里我是根據tp框架的手冊以及諸位網友的網文自己測試成功了的,大家按照我的思路設置就行了。只有你配置對了,我想應該不會出現太多問題。  

  1. 首先在你的模塊下面建一個文件夾Behaviors,再在Behaviors里面創建自定義的鉤子行為類,鉤子行為類必須是xxxBehaviors.class.php的格式。  
  2. 其次在你的模塊下面的Conf文件夾中新增一個文件tags.php。  為什么要這樣,這是tp的語法,你照做就行了,當然你自己也可以探究一下。  這樣子說或許還不夠形象,下面我還是上代碼吧,本人描述比較差。  先截個圖顯示路徑吧,免得有的同學還是摸不著頭腦。

解釋一下上面的文件夾,Conf文件夾有的tp會自動生成,有的可能要你新建,Behaviors文件夾則是要你新建的,下面還是上代碼:在Behaviors文件夾里面(完整路徑D:\think\application\Home\Behaviors\testBehavior.class.php)我自定義的鉤子行為類的內容:

?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2016/7/17
 * Time: 11:02
 */
namespace Home\Behaviors;
/*
 * 注冊鉤子行為類,要觸發的行為寫在run函數里
 * */
class testBehavior extends \Think\Behavior{
 public function run($arg){
 echo 'test behavior=====下一行是參數br/>'.$arg['name'];
 }
}

在Conf文件夾里面(完整路徑D:\think\application\Home\Conf\tags.php,當然這是我的情況)tags.php的內容:

?php
/**
 * Created by zhuowenfeng.
 * User: Administrator
 * Date: 2016/7/17
 * Time: 10:56
 */
return array(//'action_begin'=>array('Home\\Behaviors\\test','Home\\Behaviors\\test'),
 //一個標簽位可以有多個行為,使用數組即可。 
 // 如果是3.2.1版本 則需要改成 
 'action_begin'=>array('Home\\Behaviors\\testBehavior','Home\\Behaviors\\testBehavior'),
 'mv'=>array('Home\\Behaviors\\mvBehavior','Home\\Behaviors\\mvBehavior')
);

解釋一下,上面tags.php文件的內容,我配置了兩個行為標識,``action_begin``,``mv``,是跟login.html那里相對應的,你可以回去仔細查看一下,login.html模板的內容,必定包含有``action_begin``,``mv``,這里也是tp框架在tags.php設置行為標識的語法,要是想問為什么可以自行探究,這里不多說。

還有請注意:上面那個被我注釋掉的‘action_begin',其實是我的版本不適合這個語法,這是其他版本在tags.php配置行為標識的語法,這里tp里面的文檔說的比較清楚,我就不多說了。如果,你的版本和我不同,那么請用上面的語法嘗試一下,如果用上面的語法配置還是沒辦法配置成功,那么可能是你配置錯了。

配置好了,那么請你再嘗試調用模板login.html。我相信你一定能獲得你想要的配置結果的。

這里提醒一句,請認真看我所做的注釋,那里可以說也包含了很多信息。

接下來,我要講講設置監聽鉤子行為類的兩個方法hook(),tag():

這兩個函數都是tp內置監聽鉤子行為類的內置函數,可以在tp框架的函數庫functions.php文件中找得到。這里只講他們的調用區別,其實已經在login.html模板文件中提到了,這里就再次說明一下:

兩個函數在functions.php的代碼:

/**
 * 獲取和設置配置參數 支持批量定義
 * @param string|array $name 配置變量
 * @param mixed $value 配置值
 * @param mixed $default 默認值
 * @return mixed
 */
function hook($hook,$params=array()){
 \Think\Hook::listen($hook,$params); //監聽一個鉤子
}

/**
 * 處理標簽擴展
 * @param string $tag 標簽名稱
 * @param mixed $params 傳入參數
 * @return void
 */
function tag($tag, $params=NULL) {
 \Think\Hook::listen($tag,$params);
}

之所以在這里展示一下這兩個函數的內容,是為了解釋它們的區別:

細心的你應該發現tag函數的$param參數值里前面帶了一個······符號,沒有錯:這個符號就是引用變量的地址符號,所以tag函數的$param參數只能是變量,請不要懷疑,你可以測試一下不是變量的情況,呵呵。

它們的區別也在于此,hook可以引用任何參數,tag只能引用變量的參數

上面那個tags.php文件里面我在每個標簽行為的后面都重復配置了testBehavior自定義類,是為了證明,一個標簽也可以對應多個行為類,如果你配置成功了,那么你運行login.html的時候,肯定發現login根據testBehavior設置的執行了兩次。

最后,總結一下:

tp框架的鉤子行為類無非就是為了在某個特定地點,特定時間促發某種行為,這個是應用很廣的,本人姑且這么認為。比如,你想要在某個模板植入廣告,可以向我這樣子簡單的設置。然后,簡單的介紹tp行為的引用步驟:

首先第一步,你要先配置好自己的行為類,這是毋庸置疑的。

其次是促發的行為,你必須在你自定義的行為類的run里面設置,在這里實現你的任何行為,run方法就是你配置行為的地方。

然后,就是配置tags.php的行為標識了

這里你可以按照上面格式配置,當然,你有沒有細心的發現上面的IndexController.class.php里面我多寫了幾行代碼:

//第一個是執行標簽的名稱,第二個參數是行為的類的地址
 Hook::add('test', "Home\\Behaviors\\testBehavior");

其實這里是動態添加行為標識的代碼,也就是說,鉤子行為的標簽行為,也就是標識也可以動態添加的,你可以試試。

最后,就是監聽行為了,監聽行為就是引用tag方法或者hook方法了,在這里你可以傳入參數,也可不傳,看你想怎么做了。監聽行為你可以在模板上監聽,也可以在其他地方監聽,比如控制器的方法中,這里就不舉例了,你可以自己試試,我之所以在模板中舉例,完全是為了看到效果,畢竟做實驗看不到你要的結果,是證明不了你的實驗是個成功的實驗的。

到此這篇關于thinkphp的鉤子的兩種配置和兩種調用方法的文章就介紹到這了,更多相關thinkphp的鉤子內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • ThinkPHP 5.x遠程命令執行漏洞復現
  • ThinkPHP框架任意代碼執行漏洞的利用及其修復方法
  • 對于ThinkPHP框架早期版本的一個SQL注入漏洞詳細分析
  • ThinkPHP的標簽制作實例講解
  • phpstudy的安裝及ThinkPHP框架的搭建圖文講解
  • ThinkPHP6.0 重寫URL去掉Index.php的解決方法
  • ThinkPHP6通過Ucenter實現注冊登錄的示例代碼
  • Thinkphp5+Redis實現商品秒殺代碼實例講解
  • 如何從防護角度看Thinkphp歷史漏洞

標簽:遼陽 克拉瑪依 鷹潭 六安 柳州 白城 唐山 鶴崗

巨人網絡通訊聲明:本文標題《thinkphp的鉤子的兩種配置和兩種調用方法》,本文關鍵詞  thinkphp,的,鉤子,兩種,配置,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《thinkphp的鉤子的兩種配置和兩種調用方法》相關的同類信息!
  • 本頁收集關于thinkphp的鉤子的兩種配置和兩種調用方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日韩一区中文字幕| 国产制服丝袜一区| 日韩精品一区二区三区中文精品| 91香蕉视频mp4| 色综合天天综合狠狠| 日本韩国欧美在线| 欧美三级在线视频| 中文字幕一区二区三区在线不卡 | 国产成人亚洲综合色影视| 日韩国产一二三区| 亚洲精品成人a在线观看| 亚洲欧美一区二区在线观看| 一区二区久久久久久| 精品国产伦一区二区三区观看方式| 日韩国产精品久久久久久亚洲| 国产高清不卡二三区| 色婷婷av一区二区| 日本一二三不卡| 色噜噜夜夜夜综合网| 成人午夜在线视频| 欧美在线看片a免费观看| 99久久精品免费看| 久久精品亚洲精品国产欧美 | 亚洲同性同志一二三专区| 成人午夜视频福利| 欧美日韩一区二区欧美激情| 久久久久久久综合狠狠综合| 成人免费一区二区三区在线观看 | 色综合夜色一区| 91原创在线视频| 男人操女人的视频在线观看欧美 | 亚洲精品videosex极品| 日韩中文字幕av电影| 粉嫩欧美一区二区三区高清影视 | 丝袜美腿亚洲综合| av一区二区不卡| 久久综合久久久久88| 日韩精品免费专区| 一本一道综合狠狠老| 国产精品五月天| 美女网站在线免费欧美精品| 一二三区精品福利视频| 国产91精品免费| 日韩午夜电影在线观看| 亚洲成av人**亚洲成av**| 91蜜桃网址入口| 中文字幕不卡的av| 国产在线乱码一区二区三区| 欧美日韩成人综合天天影院| 日韩福利视频导航| 日本va欧美va欧美va精品| 欧美日韩一级片在线观看| 亚洲欧美激情小说另类| av午夜一区麻豆| 中文字幕 久热精品 视频在线| 国产美女精品在线| 久久免费的精品国产v∧| 国产综合久久久久久鬼色| 欧美一区二区日韩一区二区| 午夜视频在线观看一区| 欧美日韩电影在线播放| 亚洲成人一区二区| 欧美视频一区二区三区四区 | 国产精品久久一级| 成人精品鲁一区一区二区| 国产精品你懂的在线| 成人做爰69片免费看网站| 色综合 综合色| 亚洲视频狠狠干| 色老汉av一区二区三区| 午夜视频一区二区三区| 在线观看91精品国产麻豆| 麻豆国产精品官网| 国产亚洲一区字幕| 色综合色狠狠综合色| 国产麻豆视频一区二区| 欧美性受极品xxxx喷水| 蜜桃av噜噜一区二区三区小说| 久久久天堂av| 色婷婷国产精品久久包臀| 亚洲一区二区五区| 日韩欧美在线影院| 成人黄色大片在线观看| 亚洲激情一二三区| 欧美放荡的少妇| 高清视频一区二区| 亚洲国产综合人成综合网站| 欧美成人a在线| 91色porny在线视频| 日本欧美一区二区| 久久久精品国产免大香伊| 91亚洲精品一区二区乱码| 成人美女视频在线看| 麻豆国产一区二区| 日本韩国一区二区三区视频| 日本成人在线网站| 中国av一区二区三区| 欧美日韩成人激情| 成人中文字幕合集| 丝瓜av网站精品一区二区| 国产欧美一区二区精品婷婷| 欧美日韩综合不卡| 国产精品影视天天线| 一区二区三区精品在线| 91麻豆精品国产自产在线观看一区 | 欧美日本一区二区三区四区| 精品一区二区三区久久| 亚洲免费色视频| 久久综合九色综合久久久精品综合| 色综合 综合色| 成人免费黄色在线| 麻豆国产欧美一区二区三区| 亚洲精品高清视频在线观看| 久久免费精品国产久精品久久久久| 欧美男男青年gay1069videost| caoporn国产一区二区| 久久精品国产精品亚洲精品| 亚洲一区在线视频观看| 久久久精品国产99久久精品芒果| 欧美日韩国产综合一区二区三区| 亚洲欧美另类久久久精品| 日韩欧美一区电影| 欧美色综合久久| 91老师国产黑色丝袜在线| 国产精品99久久久久久久vr| 蜜桃视频在线观看一区| 亚洲成人av一区| 亚洲午夜精品17c| 91影视在线播放| 国产婷婷色一区二区三区在线| 欧美一区二区三区在线观看视频| 在线免费不卡视频| 一本久久a久久精品亚洲| 风间由美性色一区二区三区| 国产一区中文字幕| 毛片不卡一区二区| 蜜臀国产一区二区三区在线播放| 偷拍自拍另类欧美| 天天免费综合色| 亚洲3atv精品一区二区三区| 午夜精品一区在线观看| 天堂午夜影视日韩欧美一区二区| 亚洲高清免费观看 | 欧美二区在线观看| 欧美在线播放高清精品| 美女尤物国产一区| 国产精品不卡在线观看| 亚洲国产综合91精品麻豆| 国产精品久久久久aaaa| 亚洲国产电影在线观看| 1024精品合集| 91在线观看美女| 91视频观看免费| 日本丰满少妇一区二区三区| 91免费版在线| 欧美日韩一区二区三区四区| 欧美视频在线观看一区二区| 欧美日韩日日摸| 51精品久久久久久久蜜臀| 日韩视频一区二区三区在线播放| 日韩欧美www| 国产午夜精品一区二区三区四区| 国产视频911| 亚洲美腿欧美偷拍| 日韩和欧美一区二区三区| 乱中年女人伦av一区二区| 狠狠色丁香久久婷婷综合_中 | 亚洲成a天堂v人片| 日韩精品免费专区| 国产亚洲美州欧州综合国| 国产精品拍天天在线| 亚洲免费三区一区二区| 欧亚一区二区三区| 久久99精品国产麻豆不卡| 午夜免费欧美电影| 亚洲成人av在线电影| 午夜精品影院在线观看| 国产一区激情在线| 国产欧美日本一区视频| www精品美女久久久tv| 日韩午夜电影在线观看| 678五月天丁香亚洲综合网| 欧美精品日韩一本| 日韩三级在线观看| 日韩女同互慰一区二区| 精品国产一区二区三区忘忧草| 日韩欧美高清在线| 欧美亚洲综合色| 欧美日韩一区久久| 国产精品热久久久久夜色精品三区| 亚洲国产精品嫩草影院| 国产精品夜夜嗨| 欧美日韩精品一区二区三区蜜桃| 中文字幕免费不卡| 国产成a人亚洲精| 26uuu色噜噜精品一区二区| 国产宾馆实践打屁股91| 国精产品一区一区三区mba视频| 国产伦精品一区二区三区免费| 中文字幕不卡在线观看|