PHP外掛系統的實現(五):觸發外掛

VeryCool發表於2021-06-15

這是經理類的最後一步 觸發,這個方法也是放到 整個程式執行流程中的最重要一環.
注意:經理類需要載入到我們程式的整個執行流程中.

請注意 public/private/protected 的使用 我就全部寫public了

public function trigger($hook, $data='')
      {
         #首先需要判斷一下$hook 存不存在

         if (
             isset($this->_staff[$hook]) && is_array($this->_staff[$hook]) && count($this->_staff[$hook]) > 0
         )
          {
             #如果存在定義 $plugin_func_result
              foreach ($this->_staff[$hook] as $staff)
              {
                   # 如果只是記錄 請不要返回
                  $plugin_func_result = '';
                  $class = &$staff[0]; #引用過來的類
                  $method = $staff[1]; #類下面的方法
                  if(method_exists($class,$method))
                  {  
                  $func_result = $class->$method($data);
                      if(is_numeric($func_result)){
                        #這裡判斷返回值是不是字串,如果不是將不進行返回到頁面上
                        $plugin_func_result .= $func_result;
                    }

                }
              }
       }

        return $plugin_func_result;
   }
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章