]> git.nbdom.net Git - nb.git/commitdiff
Add functions debug_backtrace_*
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Tue, 1 Mar 2016 22:10:18 +0000 (22:10 +0000)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Tue, 1 Mar 2016 22:10:18 +0000 (22:10 +0000)
lib/php/nb.php

index 40d747588b68817fa3aad80bfacce14751a71783..77ad2f9f026991aff60410e314bf5070919e5c83 100644 (file)
@@ -198,6 +198,90 @@ class nb {
     return "--- \n$yaml\n";
   }
 
+  /*
+  * Function: debug_backtrace_msg
+  * @copyright 13.07.11
+  * @author NB
+       * Return backtrace message
+  */
+       static function debug_backtrace_msg($deep=NULL,$one_line=NULL) {
+
+               $debug = debug_backtrace();
+    $msg = '';
+               array_shift($debug);
+               if (isset($_REQUEST['_debug_backtrace_msg'])) $deep = $_REQUEST['_debug_backtrace_msg'];
+
+               if ($deep===NULL or $deep===TRUE) {
+
+                       $msg .= ' [';
+
+                       foreach (array_reverse($debug) as $i=>$call_info)
+                               $msg .= ( $one_line ? ($i>0 ? ", " : "") : "\n\t" ) . nb::debug_backtrace_info($call_info);
+
+                       $msg .= ($one_line ? "" : "\n")."]";
+
+               } elseif (isset($call_info[(int)$deep])) {
+      $msg .= ' '.nb::debug_backtrace_info($call_info[(int)$deep]);
+
+    }
+
+               return $msg;
+       }
+
+  /*
+  * Function: debug_backtrace_info
+  * @copyright 13.07.11
+  * @author NB
+       * Return backtrace message
+  */
+  static function debug_backtrace_info($call_info) {
+
+    $errorType = array (
+      E_ERROR          => 'ERROR',
+      E_WARNING        => 'WARNING',
+      E_PARSE          => 'PARSING ERROR',
+      E_NOTICE         => 'NOTICE',
+
+      E_CORE_ERROR     => 'CORE ERROR',
+      E_CORE_WARNING   => 'CORE WARNING',
+      E_COMPILE_ERROR  => 'COMPILE ERROR',
+      E_COMPILE_WARNING => 'COMPILE WARNING',
+
+      E_USER_ERROR     => 'USER ERROR',
+      E_USER_WARNING   => 'USER WARNING',
+      E_USER_NOTICE    => 'USER NOTICE',
+
+      E_STRICT         => 'STRICT NOTICE',
+
+      E_RECOVERABLE_ERROR  => 'RECOVERABLE ERROR',
+      E_DEPRECATED  => 'E_DEPRECATED ERROR',
+      E_USER_DEPRECATED  => 'E_USER_DEPRECATED ERROR',
+    );
+    if (isset($call_info['type']) and isset($errorType[$call_info['type']])) $call_info['type'] = $errorType[$call_info['type']].'='.$call_info['type'];
+    #else ($call_info['type']) $call_info['type'] = $call_info['type'];
+
+    // Default values
+    if (isset($call_info['file'])) $call_info['file'] = str_replace($_SERVER['DOCUMENT_ROOT'].'/','',$call_info['file']);
+
+    // Get infos
+    $msg = array();
+    foreach (array(
+      'file',
+      'line',
+      'function',
+  # NB 21.07.11                'type',
+      'type',
+      'message',
+      'code',
+    ) as $i) {
+
+      die($i);
+      if (array_key_exists($i,$call_info)) $msg[] = "$i=".$call_info[$i];
+
+    }
+
+    return join(' ',$msg);
+  }
 }
 #die(nb::ext2mime('csv'));