public function perform(AbstractEvent $event)
 {
     $data = $event->data();
     $job = '';
     if (!empty($data['job'])) {
         $job = $data['job'];
     }
     $this->logger()->info(sprintf("%s: %s\n", $event->name(), json_encode($job)));
 }
 public function handle(AbstractEvent $event)
 {
     $events = $this->implementedEvents();
     if (empty($events)) {
         return;
     }
     if (!isset($events[$event->getName()])) {
         return;
     }
     $handler = $events[$event->getName()];
     if (!method_exists($this, $handler)) {
         return;
     }
     return $this->{$handler}($event);
 }
 /**
  * Invoke the the handle method on a list of listeners
  *
  * @param  array  $listeners
  * @param  AbstractEvent  $event
  * @param  array  $arguments
  */
 protected function invokeListeners(array $listeners, AbstractEvent $event, array $arguments)
 {
     foreach ($listeners as $listener) {
         call_user_func_array([$listener, 'handle'], $arguments);
         if ($event->isPropagationStopped()) {
             break;
         }
     }
 }