2017 12 23 php中鉤子的應用

2021-10-05 07:27:13 字數 2579 閱讀 2113

layout

title

date

author

desc

in_head

post

php鉤子的應用

2017-12-23 21:00:02 +0800

南丞

在windows程式設計中 hook==鉤子 是一種訊息機制的一種

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

產品汪搞出了一堆需求;

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

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

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

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

<?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)

phpcopy

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

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

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

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

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

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

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

好先定義如下目錄

├─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是...