/**
  * Dispatches a new event to all configured listeners
  *
  * @param string|CakeEvent $event the event key name or instance of CakeEvent
  * @return void
  */
 public function dispatch($event)
 {
     if (is_string($event)) {
         $event = new LocalEvent($event);
     }
     if (empty($this->_listeners[$event->name()])) {
         return;
     }
     foreach ($this->listeners($event->name()) as $listener) {
         if ($event->isStopped()) {
             break;
         }
         $result = call_user_func($listener['callable'], $event);
         if ($result === false) {
             $event->stopPropagation();
         }
         if ($result !== null) {
             $event->result = $result;
         }
         continue;
     }
 }