PHP 寫插件 其中的HOOK 只是別人想的一個詞語,術語而已
並沒有實際意義
在WINDOWS編程中 HOOK==鉤子 是一種消息機制的一種
意思就是:蚊子叮了你一口,你的大腦神經接收到了,因而指揮肢體,去趕走仍是拍死這個蚊子
這個大腦神經就是HOOK,系統接收用戶操做,而HOOK則監視某一知足條件
用戶輸入A ,系統接收到A,而HOOK定義接收B,那麼輸入A,則不作操做
當輸入B了,則激活HOOK,進行執行制定代碼
PHP的插件HOOK,好比你添加一個插件,把這個插件信息提早告訴HOOK,而後HOOK去監視用戶
當用戶調用這個插件,HOOK就感知到了
因而就把插件功能實現出來 編程
假若有這麼一段程序: 函數
function fun(){
fun1();
fun2();
}
首先程序執行完fun1()以後執行fun2()而後fun()結束。 spa
可是,假如咱們想對函數作一些變化。好比說,fun是一個解析函數,咱們但願後期能夠提供豐富的解析函數,而究竟用哪一個函數解析,咱們但願在配置文件中配置。這個時候就能夠發揮鉤子的力量了。 插件
咱們能夠在function fun(){}中加入一個掛鉤點H,而後再執行H這個函數以前,將鉤子函數配置好,我麼就能夠根據須要來解析了。 code
例如: 事件
$h=config_item("parser_fun") ;//從配置文件中得到相應的配置信息 function fun($data){ global $h; return $h(); }
除此意外,PHP還能夠根據字符串提供本身的類,而後調用類的一個方法,傳遞某些參數,這些就爲PHP程序的編寫,以及後期的維護擴展奠基了,至關堅實的基礎。
類的實現方法,大體以下: 字符串
$c=get_class_name(); //得到類的名字 $m=get_method_name(); //得到方法的名字 $k=$c->$m(); //執行類的某一個方法
我的感受鉤子 整實現應該叫事件驅動
我的感受鉤子完整實現應該叫作事件驅動,或者事件觸發器,當監聽到某個事件的時候觸發某個事件。 get