Пример #1
0
 public static function handle($e, $override = array())
 {
     if (isset($override['message'])) {
         $message = $override['message'];
     } else {
         $message = $e->getMessage();
     }
     if (isset($override['code'])) {
         $code = $override['code'];
     } else {
         $code = $e->getCode();
     }
     if (isset($override['line'])) {
         $line = $override['line'];
     } else {
         $line = $e->getLine();
     }
     if (isset($override['file'])) {
         $file = $override['file'];
     } else {
         $file = $e->getFile();
     }
     // check if inline errors are enabled and the error is not fatal
     // if (self::$inlineErrors === true && in_array($code, array(2, 4, 8, 32, 128, 256, 1024, 2048, 4096, 8192, 16384))) {
     //   echo nl2br($message);
     //   echo '<br />' . $file . ' on line ' . $line;
     //   return;
     // }
     // clean output buffer
     if (ob_get_level() > 0) {
         ob_clean();
     }
     if (self::$debugMode === true) {
         // get random snippet
         $snippet = self::$funSnippets[rand(0, count(self::$funSnippets) - 1)];
         // call error controller and pass information
         $message = array('exception' => get_class($e), 'error' => nl2br($message), 'backtrace' => $e->getTraceAsString(), 'snippet' => $snippet, 'line' => $line, 'code' => $code, 'file' => $file);
         if (!isset($_SERVER['SHELL'])) {
             require 'madeam/src/madeam/exception/template.html.php';
         } else {
             require 'madeam/src/madeam/exception/template.shell.php';
         }
         exit;
     } else {
         // return 404 error page
         $params = array('_controller' => 'error', '_action' => 'http404', '_method' => 'get', '_layout' => 1, '_format' => 'html');
         echo Framework::control($params);
     }
 }