_exceptions; if (count($source)) { $source = end($source); $traces = array(); do { $traces += $source->getTrace(); } while ($source = $source->getPrevious()); $traces += debug_backtrace(); $call_trace = parse_backtrace($traces, 0); } else { $call_trace = parse_backtrace(debug_backtrace()); } } exceptions(); function parse_backtrace($raw, $skip = 1) { $output = ""; foreach ($raw as $entry) { if ($skip-- > 0) { continue; } //$output .= print_r($entry, true) . "\n"; $output .= "\nFile: " . $entry['file'] . " (Line: " . $entry['line'] . ")\n"; if (isset($entry['class'])) $output .= $entry['class'] . "::"; $output .= $entry['function'] . "( " . json_encode($entry['args']) . " )\n"; } return $output; } //print_r(get_defined_vars()); //print_r($response); $icon; if ($success && isset($api)) { $arguments = implode(', ', $api->parameters); $icon = ""; $title = "{$api->className}::" . "{$api->methodName}({$arguments})"; } else { if (isset($response['error']['message'])) { $icon = ''; $title = end(explode(':',$response['error']['message'])); } else { $icon = ''; $title = 'No Matching Resource'; } } function render($data, $shadow=true) { $r = ''; if (empty($data)) return $r; $r .= $shadow ? "