示例#1
0
 public static function developer_warn($message, $show_backtrace = true)
 {
     if (!WP_DEBUG) {
         return;
     }
     it_classes_load('it-debug.php');
     $backtrace = ITDebug::get_backtrace(array('offset' => 2, 'remove_abspath' => false));
     echo "<pre style='color:black;background:white;padding:15px;font-family:\"Courier New\",Courier,monospace;font-size:12px;text-align:left;max-width:100%;'>";
     echo "<strong>Developer Notice</strong>\n";
     echo "    {$message}\n\n";
     echo "<strong>Stack Backtrace</strong>\n";
     foreach ($backtrace as $trace) {
         echo '    ' . ITDebug::get_backtrace_description($trace) . "\n";
     }
     echo "</pre>\n";
 }
示例#2
0
 public static function get_backtrace($args = array())
 {
     if (is_bool($args)) {
         $args = array('expand_objects' => $args);
     } else {
         if (!is_array($args)) {
             $args = array();
         }
     }
     $default_args = array('expand_objects' => false, 'limit' => 0, 'offset' => 0, 'type' => 'array');
     $args = array_merge($default_args, $args);
     $backtrace = debug_backtrace();
     unset($backtrace[0]);
     if ($args['offset'] > 0) {
         $backtrace = array_slice($backtrace, $args['offset']);
     }
     if ($args['limit'] > 0) {
         $backtrace = array_slice($backtrace, 0, $args['limit']);
     }
     $backtrace = array_values($backtrace);
     if ('string' == $args['type']) {
         $string_backtrace = '';
         foreach ($backtrace as $trace) {
             $string_backtrace .= ITDebug::get_backtrace_description($trace, $args) . "\n";
         }
         $backtrace = $string_backtrace;
     }
     return $backtrace;
 }