39 protected static $instance = null;
46 protected $sigslots = array();
55 public function emit($signal, $params = null)
62 if(!is_array($params))
64 $params = func_get_args();
65 $params = array_slice($params, 1);
68 foreach($this->sigslots[$signal] as $slot)
70 $return = $slot->call($params);
85 if(!is_callable($callback, TRUE, $callable_name))
90 return md5($callable_name);
102 if(empty($this->sigslots[$signal]))
104 $this->sigslots[$signal] = array();
109 if(!array_key_exists($index, $this->sigslots[$signal]))
114 return $this->sigslots[$signal][$index];
131 if($callback !== null)
135 if(!array_key_exists($index, $this->sigslots[$signal]))
140 unset($this->sigslots[$signal][$index]);
144 unset($this->sigslots[$signal]);
155 return array_keys($this->sigslots);
166 return empty($this->sigslots[$signal]) ? FALSE : TRUE;
179 return $this->sigslots[$signal];
195 unset($this->sigslots[$signal]);
206 if(self::$instance === null)
208 self::$instance =
new self();
211 return self::$instance;