實現 detector的功能
class PluginManager{
/**
* 已經上班的員工/已經啟用的外掛:用來監聽or監控
* @access private
* @var array
*/
private $_staff = [];
/**
* 建構函式
*
* @access public
* @return void
*/
public function __construct(){
#探測器需要自動執所以放在建構函式中執行 只要new 了當前類 自動發現所有外掛
$this->detector();
}
public function detector(){
//主要功能為將外掛需要執行功能放入 $_staff
$plugins = $this->get_active_plugins();
if($plugins){
foreach($plugins as $plugin){
#這裡將所有外掛踐行初始化
#路徑請自己注意
if (@file_exists($plugin['path'])){
include_once($plugin['path']);
#此時設定 資料夾名稱 檔名稱 類名 是統一的 如果想設定不統一請自己在get_active_plugins()內進行實現
$class = $plugin['name'];
if (class_exists($class)){
#初始化所有外掛類
new $class();
}
}
}
}
}
}
到這裡還有一點小問題,那就是執行是執行了但是 $_staff 中依然是空的,執行的也只是執行了一個類 而不是使用鉤子觸發指定的方法
還是那句話,排版好難請看下一篇
本作品採用《CC 協議》,轉載必須註明作者和本文連結