layout
title
date
author
desc
in_head
post
php鉤子的應用
2017-12-23 21:00:02 +0800
南丞
在windows程式設計中 hook==鉤子 是一種訊息機制的一種
我們先來回顧下原本的開發流程;
產品汪搞出了一堆需求;
當使用者註冊成功後需要傳送簡訊、傳送郵件等等;
然後聰明機智勇敢的程式猿們就一撲而上;
把這些需求轉換成**扔在 使用者註冊成功 和 跳轉到首頁 之間;
沒有什麼能夠阻擋;充滿創造力的猿們;
phpcopy<?php
class test
}$test=new test();
$test->index();
如果每個功能都由不同的猿完成的話;
首先面臨的就是**會很雜亂;配合起來會比較麻煩;
那封裝成函式吧;一方面會規範整潔寫;另外方便重複呼叫;
沒有什麼能夠阻擋;充滿創造力的猿們;
phpcopy<?php
class test
}/**
* 傳送簡訊通知
* @param integer $phone 手機號
*/function sendsms($phone)
/** * 傳送郵件通知
* @param string $email 郵箱位址
*/function sendemail($email)
這時候運營喵表示;
如果能在後台點點按鈕就能設定是發郵件還是發簡訊;那想必是極好的;
沒有什麼能夠阻擋;充滿創造力的猿們;
phpcopy<?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 // 業務邏輯
phpcopy 業務邏輯的**:
<?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();
phpcopy
外掛程式配置項**:
<?php
return array (
'status' => 1, // 定義狀態 1表示開啟 0表示關閉
'title' => '傳送簡訊', // 外掛程式的名稱
);
沒錯;這就是外掛程式的思想;phpcopy
外掛程式的內容:
<?php
hook::add('plugin1',function());
當然這只是乙個超級簡單的示例;
完整的外掛程式機制要包括外掛程式的型別、資料庫、審核等等;
談PHP中的鉤子
鉤子,英文為hooks。在程式中應用相當廣泛,但是究竟什麼是鉤子呢?本人介紹一下目前本人對鉤子的理解和相關心得。假如有這麼一段程式流 function fun fun函式正常的執行順序,肯定是執行完funa,然後執行funb,然後fun函式就結束了。但是,假如我們想對函式做一些變化。比如說,fun是...
談PHP中的鉤子
鉤子,英文為hooks。在程式中應用相當廣泛,但是究竟什麼是鉤子呢?本人介紹一下目前本人對鉤子的理解和相關心得。假如有這麼一段程式流 function fun fun函式正常的執行順序,肯定是執行完funa,然後執行funb,然後fun函式就結束了。但是,假如我們想對函式做一些變化。比如說,fun是...
談PHP中的鉤子
鉤子,英文為hooks。在程式中應用相當廣泛,但是究竟什麼是鉤子呢?本人介紹一下目前本人對鉤子的理解和相關心得。假如有這麼一段程式流 function fun fun函式正常的執行順序,肯定是執行完funa,然後執行funb,然後fun函式就結束了。但是,假如我們想對函式做一些變化。比如說,fun是...