php中鉤子 hook 的應用簡單demo示例

2021-09-11 10:39:13 字數 2441 閱讀 6334

我們先來回顧下原本的開發流程;

產品汪搞出了一堆需求;

當使用者註冊成功後需要傳送簡訊、傳送郵件等等;

然後聰明機智勇敢的程式猿們就一撲而上;

把這些需求轉換成**扔在 使用者註冊成功 和 跳轉到首頁 之間;

沒有什麼能夠阻擋;充滿創造力的猿們;

<?php

class test

}$test=new test();

$test->index();

如果每個功能都由不同的猿完成的話;

首先面臨的就是**會很雜亂;配合起來會比較麻煩;

那封裝成函式吧;一方面會規範整潔寫;另外方便重複呼叫;

沒有什麼能夠阻擋;充滿創造力的猿們;

<?php

class test

}/**

* 傳送簡訊通知

* @param integer $phone 手機號

*/function sendsms($phone)

/** * 傳送郵件通知

* @param string $email 郵箱位址

*/function sendemail($email)

這時候運營喵表示;

如果能在後台點點按鈕就能設定是發郵件還是發簡訊;那想必是極好的;

沒有什麼能夠阻擋;充滿創造力的猿們;

<?php

class test

if ('如果設定了傳送郵件')

// 其他操作...

// 前往**首頁

}}/**

* 傳送簡訊通知

* @param integer $phone 手機號

*/function sendsms($phone)

/** * 傳送郵件通知

* @param string $email 郵箱位址

*/function sendemail($email)

在乙個封閉企業環境下這樣搞是沒有問題的;

然鵝;我們還有一位開放無私的猿領導要把程式開源出去造福其他猿類;

希望有更多的猿類來參與這個專案;共同開發功能;

如果大家都去改動這套程式;把自己的**扔在 使用者註冊成功 和 跳轉到首頁 之間;

這顯然是不靠譜的;想想都混亂的一塌糊塗;

那可不可以大家把自己寫的**放到某個目錄下;

然後系統自動的根據配置項把這些**載入到 使用者註冊成功 和 跳轉到首頁 之間呢?

好先定義如下目錄

├─plugin // 外掛程式目錄

│ ├─plugin1 // 外掛程式1

│ │ ├─config.php // 外掛程式1的配置項

│ │ ├─index.php // 外掛程式1的程式處理內容

│ ├─plugin2

│ │ ├─config.php

│ │ ├─index.php

│ ├─plugin3

│ │ ├─config.php

│ │ ├─index.php

│ ├─...

├─index.php // 業務邏輯

業務邏輯的**:

<?php

class test

}echo "簡易後台管理";

// 外掛程式管理

foreach ($pluginlist as $k => $v)

echo '';

// 輸出外掛程式內容

foreach ($pluginlist as $k => $v)

}// 前往**首頁

}}// 外掛程式類

class hook

// 執行外掛程式

public static function run($name,$params=null)

}}// 更改外掛程式狀態

if (isset($_get['change']))

$test=new test();

$test->index();

外掛程式配置項**:

<?php

return array (

'status' => 1, // 定義狀態 1表示開啟 0表示關閉

'title' => '傳送簡訊', // 外掛程式的名稱

);

外掛程式的內容:

沒錯;這就是外掛程式的思想;

當然這只是乙個超級簡單的示例;

完整的外掛程式機制要包括外掛程式的型別、資料庫、審核等等;

如果使用過wordpress或者國內的discuz;

你就會發現乙個好的程式並不僅僅是自身多麼優秀;

而且重要的就是設計的擴充套件性有多好;能多方便的讓大家去擴充套件它的功能;

想對外掛程式深入研究的話;建議去閱讀wordpress、discuz的源**;

php中鉤子 hook 的應用示例demo

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

用過php的鉤子(hook ?

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

php中鉤子hook的實現原理

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