Example #1
0
 public function onBootstrap(EventInterface $event)
 {
     /** @var \Zend\Mvc\ApplicationInterface $application */
     $application = $event->getApplication();
     /** @var \Yassa\Rollbar\Options\ModuleOptions $options */
     $options = $application->getServiceManager()->get('Yassa\\Rollbar\\Options\\ModuleOptions');
     if ($options->enabled) {
         /** @var RollbarNotifier $rollbar */
         $rollbar = $application->getServiceManager()->get('RollbarNotifier');
         if ($options->exceptionhandler) {
             set_exception_handler(array($rollbar, "report_exception"));
             $eventManager = $application->getEventManager();
             $eventManager->attach('dispatch.error', function ($event) use($rollbar) {
                 $exception = $event->getResult()->exception;
                 if ($exception) {
                     $rollbar->report_exception($exception);
                 }
             });
         }
         if ($options->errorhandler) {
             set_error_handler(array($rollbar, "report_php_error"));
         }
         if ($options->shutdownfunction) {
             register_shutdown_function($this->shutdownHandler($rollbar));
         }
     }
 }
 /**
  * 
  * @param EventInterface $event
  */
 public function log(EventInterface $event)
 {
     $exception = $event->getResult()->exception;
     if (!$exception) {
         return;
     }
     $trace = $exception->getTraceAsString();
     $i = 1;
     do {
         $messages[] = $i++ . ": " . $exception->getMessage();
     } while ($e = $exception->getPrevious());
     $log = "Exception:n" . implode("n", $messages);
     $log .= "nTrace:n" . $trace;
     $this->logger->err($log);
 }