Example #1
0
 /**
  * Renders an exception using ansi format for console output.
  *
  * @param \Exception $exception the exception to be rendered.
  */
 protected function renderException($exception)
 {
     if ($exception instanceof Exception && ($exception instanceof UserException || !LEAPS_DEBUG)) {
         $message = $this->formatMessage($exception->getName() . ': ') . $exception->getMessage();
     } elseif (LEAPS_DEBUG) {
         if ($exception instanceof Exception) {
             $message = $this->formatMessage("Exception ({$exception->getName()})");
         } elseif ($exception instanceof ErrorException) {
             $message = $this->formatMessage($exception->getName());
         } else {
             $message = $this->formatMessage('Exception');
         }
         $message .= $this->formatMessage(" '" . get_class($exception) . "'", [Console::BOLD, Console::FG_BLUE]) . " with message " . $this->formatMessage("'{$exception->getMessage()}'", [Console::BOLD]) . "\n\nin " . dirname($exception->getFile()) . DIRECTORY_SEPARATOR . $this->formatMessage(basename($exception->getFile()), [Console::BOLD]) . ':' . $this->formatMessage($exception->getLine(), [Console::BOLD, Console::FG_YELLOW]) . "\n";
         if ($exception instanceof \Leaps\Db\Exception && !empty($exception->errorInfo)) {
             $message .= "\n" . $this->formatMessage("Error Info:\n", [Console::BOLD]) . print_r($exception->errorInfo, true);
         }
         $message .= "\n" . $this->formatMessage("Stack trace:\n", [Console::BOLD]) . $exception->getTraceAsString();
     } else {
         $message = $this->formatMessage('Error: ') . $exception->getMessage();
     }
     if (PHP_SAPI === 'cli') {
         Console::stderr($message . "\n");
     } else {
         echo $message . "\n";
     }
 }