public function fire($data) { if (!isset($data['event']) || empty($data['event'])) { error_log('Invoked event call without providing event name'); return false; } $event = $data['event']; $subject = isset($data['subject']) ? $data['subject'] : null; $params = isset($data['params']) ? $data['params'] : null; if (BF_DEBUG) { $this->di['logger']->debug($event . ': ' . var_export($params, 1)); } $e = new Fuse_Event($subject, $event, $params); $e->setDi($this->di); $disp = new Fuse_EventDispatcher(); $this->_connectDatabaseHooks($disp, $e->getName()); $disp->notify($e); return $e->getReturnValue(); }
/** * Filters a value by calling all listeners of a given event. * * @param Fuse_Event $event A Fuse_Event instance * @param mixed $value The value to be filtered * * @return Fuse_Event The Fuse_Event instance */ public function filter(Fuse_Event $event, $value) { foreach ($this->getListeners($event->getName()) as $listener) { $value = call_user_func_array($listener, array($event, $value)); } $event->setReturnValue($value); return $event; }