用過php的鉤子(hook ?

2021-10-01 18:35:51 字數 1293 閱讀 2632

鉤子定義

鉤子是程式設計裡乙個常見概念,非常的重要。它使得系統變得非常容易拓展,(而不用理解其內部的實現機理,這樣可以減少很多任務作量)。

鉤子作用

鉤子函式可以截獲並處理其他應用程式的訊息。每當特定的訊息發出,在沒有到達目的視窗前,鉤子程式就先捕獲該訊息,亦即鉤子函式先得到控制權。這時鉤子函式即可以加工處理(改變)該訊息,也可以不作處理而繼續傳遞該訊息,還可以強制結束訊息的傳遞。

鉤子實現

鉤子的完整實現應該叫事件驅動。事件驅動分為兩個階段,第乙個階段是註冊事件,目的是給未來可能發生的「事件」起乙個名字,簡單的實現方法是

用單例模式產生乙個持久的物件或者註冊乙個全域性變數,然後將事件名稱,以及該事件對應的類與方法插入全域性變數即可。也就是掛載乙個鉤子。

第二個階段是觸發事件,本質上就是在事件的全域性變數中查詢要觸發的事件名稱,然後找到註冊好的類與方法,例項化並執行。這樣子就可以擺

脫傳統方式中程式必須按順序的規則,進一步實現解除耦合的目的。

**示例一

class ball

public function do()

}// 鉤子的定義

class hook

// 觸發事件

public function exec() }}

// 鉤子實現

class man()

}class woman()

}class child()

}$ball = new ball();

$ball ->down();

$ball ->do();

**示例二

// 如果需要新增小孩,就可以做新增乙個小孩hook::add("child");

/**************************鉤子的公升級版****************************************====/*

class hook

function excec($name)}}

$hook = new hook();

$hook->add('women',function($msg))

$hook->add('man',function($msg))

// 執行

$hook->excec('man','taoge');

$hook->excec('women','***');

php中鉤子hook的實現原理

鉤子定義鉤子是程式設計裡乙個常見概念,非常的重要。它使得系統變得非常容易拓展,而不用理解其內部的實現機理,這樣可以減少很多任務作量 鉤子作用 鉤子函式可以截獲並處理其他應用程式的訊息。每當特定的訊息發出,在沒有到達目的視窗前,鉤子程式就先捕獲該訊息,亦即鉤子函式先得到控制權。這時鉤子函式即可以加工處...

鉤子(HOOK)函式

我的理解是 鉤子函式可以 鉤住 我喜歡的東西 在window中就是我喜歡的訊息 這應該就是鉤子函式叫鉤子函式的原因吧。鉤子函式的意義 用處 在於 我寫了乙個window程式,在程式中我寫了一段 呼叫window的api來實現鉤子 這段 被系統通過系統呼叫,把其掛入系統中,然後我就可以對我感興趣的訊息...

php中鉤子 hook 的應用示例demo

php問題解決 我們先來回顧下原本的開發流程 產品汪搞出了一堆需求 當使用者註冊成功後需要傳送簡訊 傳送郵件等等 然後聰明機智勇敢的程式猿們就一撲而上 把這些需求轉換成 扔在 使用者註冊成功 和 跳轉到首頁 之間 沒有什麼能夠阻擋 充滿創造力的猿們 class test test new test ...