PHP插件系统的实现(五):触发插件

这是经理类的最后一步 触发,这个方法也是放到 整个程序运行流程中的最重要一环.
注意:经理类需要加载到我们程序的整个运行流程中.

请注意 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 协议》,转载必须注明作者和本文链接
VeryCool
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!