Example #1
0
 /**
  * Get all debug information as an object.
  * 
  * @return object
  */
 public static function getDebugData()
 {
     // Collect debug information.
     $data = (object) array('timestamp' => DateTime::formatTimestamp('Y-m-d H:i:s', \RX_TIME), 'url' => getCurrentPageUrl(), 'request' => (object) array('method' => $_SERVER['REQUEST_METHOD'] . ($_SERVER['REQUEST_METHOD'] !== \Context::getRequestMethod() ? ' (' . \Context::getRequestMethod() . ')' : ''), 'size' => intval($_SERVER['CONTENT_LENGTH'])), 'response' => (object) array('method' => \Context::getResponseMethod(), 'size' => \DisplayHandler::$response_size), 'timing' => (object) array('total' => sprintf('%0.4f sec', microtime(true) - \RX_MICROTIME), 'template' => sprintf('%0.4f sec (count: %d)', $GLOBALS['__template_elapsed__'], $GLOBALS['__TemplateHandlerCalled__']), 'xmlparse' => sprintf('%0.4f sec', $GLOBALS['__xmlparse_elapsed__']), 'db_query' => sprintf('%0.4f sec (count: %d)', $GLOBALS['__db_elapsed_time__'], count(self::$_queries)), 'db_class' => sprintf('%0.4f sec', $GLOBALS['__dbclass_elapsed_time__'] - $GLOBALS['__db_elapsed_time__']), 'layout' => sprintf('%0.4f sec', $GLOBALS['__layout_compile_elapsed__']), 'widget' => sprintf('%0.4f sec', $GLOBALS['__widget_excute_elapsed__']), 'remote' => sprintf('%0.4f sec', $GLOBALS['__remote_request_elapsed__']), 'trans' => sprintf('%0.4f sec', $GLOBALS['__trans_content_elapsed__'])), 'entries' => self::$_entries, 'errors' => self::$_errors, 'queries' => self::$_queries, 'slow_queries' => self::$_slow_queries, 'slow_triggers' => self::$_slow_triggers, 'slow_widgets' => self::$_slow_widgets, 'slow_remote_requests' => self::$_slow_remote_requests);
     // Clean up the backtrace.
     foreach (array('entries', 'errors', 'queries', 'slow_queries', 'remote_requests', 'slow_remote_requests') as $key) {
         if (!$data->{$key}) {
             continue;
         }
         foreach ($data->{$key} as &$entry) {
             if (isset($entry->file)) {
                 $entry->file = self::translateFilename($entry->file);
             }
             if (isset($entry->backtrace) && is_array($entry->backtrace)) {
                 foreach ($entry->backtrace as &$backtrace) {
                     $backtrace['file'] = self::translateFilename($backtrace['file']);
                     unset($backtrace['object'], $backtrace['args']);
                 }
             }
         }
     }
     return $data;
 }