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 协议》,转载必须注明作者和本文链接
推荐文章: