php中的鉤子是指Hook機制,它是從windows編程中流行開的一種技術,其主要思想是提前在可能增加代碼的地方預設一個鉤子,當我們需要重新修改代碼時,把擴展的類或者方法掛載到這個點即可。
鉤子即Hook機制,是從windows編程中流行開的一種技術。其主要思想是提前在可能增加功能的地方埋好(預設)一個鉤子,這個鉤子并沒有實際的意義,當我們需要重新修改或者增加這個地方的邏輯的時候,把擴展的類或者方法掛載到這個點即可。
(推薦教程:php圖文教程)
hook插件機制的基本思想:
在項目代碼中,你認為要擴展(暫時不擴展)的地方放置一個鉤子函數(shù),等需要擴展的時候,把需要實現(xiàn)的類和函數(shù)掛載到這個鉤子上,就可以實現(xiàn)擴展了。
整個插件機制包含三個部分:
1、hook插件經理類:這個是核心文件,是一個應用程序全局Global對象。它主要有三個職責:
-
監(jiān)聽已經注冊了的所有插件,并實例化這些插件對象。
-
注冊所有插件。
-
當鉤子條件滿足時,觸發(fā)對應的對象方法。
(視頻教程推薦:編程入門)
2、插件的功能實現(xiàn):這大多由第三方開發(fā)人員完成,但需要遵循我們(經理類定義)的規(guī)則,這個規(guī)則是插件機制所規(guī)定的,因插件機制的不同而不同。
3、插件的觸發(fā):也就是鉤子的觸發(fā)條件。這是一小段代碼,放置在你需要調用插件的地方,用于觸發(fā)這個鉤子。