我們先來回顧下原本的開發流程;
產品汪搞出了一堆需求;
當使用者註冊成功後需要傳送簡訊、傳送郵件等等;
然後聰明機智勇敢的程式猿們就一撲而上;
把這些需求轉換成**扔在 使用者註冊成功 和 跳轉到首頁 之間;
沒有什麼能夠阻擋;充滿創造力的猿們;
<?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的實現原理
鉤子定義鉤子是程式設計裡乙個常見概念,非常的重要。它使得系統變得非常容易拓展,而不用理解其內部的實現機理,這樣可以減少很多任務作量 鉤子作用 鉤子函式可以截獲並處理其他應用程式的訊息。每當特定的訊息發出,在沒有到達目的視窗前,鉤子程式就先捕獲該訊息,亦即鉤子函式先得到控制權。這時鉤子函式即可以加工處...