Beispiel #1
0
 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 (BB_DEBUG) {
         $this->di['logger']->debug($event . ': ' . var_export($params, 1));
     }
     $e = new Box_Event($subject, $event, $params);
     $e->setDi($this->di);
     $disp = new Box_EventDispatcher();
     $this->_connectDatabaseHooks($disp, $e->getName());
     $disp->notify($e);
     return $e->getReturnValue();
 }
 /**
  * Filters a value by calling all listeners of a given event.
  *
  * @param  Box_Event  $event   A Box_Event instance
  * @param  mixed    $value   The value to be filtered
  *
  * @return Box_Event The Box_Event instance
  */
 public function filter(Box_Event $event, $value)
 {
     foreach ($this->getListeners($event->getName()) as $listener) {
         $value = call_user_func_array($listener, array($event, $value));
     }
     $event->setReturnValue($value);
     return $event;
 }