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(empty($this->sigslots[$signal]))
87 $this->sigslots[$signal] = array();
90 $index = md5(serialize($callback));
92 if(!array_key_exists($index, $this->sigslots[$signal]))
97 return $this->sigslots[$signal][$index];
114 if($callback !== null)
116 $index = md5(serialize($callback));
118 if(!array_key_exists($index, $this->sigslots[$signal]))
123 unset($this->sigslots[$signal][$index]);
127 unset($this->sigslots[$signal]);
138 return array_keys($this->sigslots);
149 return empty($this->sigslots[$signal]) ? FALSE : TRUE;
162 return $this->sigslots[$signal];
178 unset($this->sigslots[$signal]);
189 if(self::$instance === null)
191 self::$instance =
new self();
194 return self::$instance;