예제 #1
0
 protected static function generateDebugInfo()
 {
     $tbg_summary = array();
     $load_time = self::getLoadtime();
     if (\b2db\Core::isInitialized()) {
         $tbg_summary['db']['queries'] = \b2db\Core::getSQLHits();
         $tbg_summary['db']['timing'] = \b2db\Core::getSQLTiming();
         $tbg_summary['db']['objectpopulation'] = \b2db\Core::getObjectPopulationHits();
         $tbg_summary['db']['objecttiming'] = \b2db\Core::getObjectPopulationTiming();
         $tbg_summary['db']['objectcount'] = \b2db\Core::getObjectPopulationCount();
     }
     $tbg_summary['load_time'] = $load_time >= 1 ? round($load_time, 2) . 's' : round($load_time * 1000, 1) . 'ms';
     $tbg_summary['scope'] = array();
     $scope = self::getScope();
     $tbg_summary['scope']['id'] = $scope instanceof Scope ? $scope->getID() : 'unknown';
     $tbg_summary['scope']['hostnames'] = $scope instanceof Scope && \b2db\Core::isConnected() ? implode(', ', $scope->getHostnames()) : 'unknown';
     $tbg_summary['settings'] = Settings::getAll();
     $tbg_summary['memory'] = memory_get_usage();
     $tbg_summary['partials'] = self::getVisitedPartials();
     $tbg_summary['log'] = Logging::getEntries();
     $tbg_summary['routing'] = array('name' => self::getRouting()->getCurrentRouteName(), 'module' => self::getRouting()->getCurrentRouteModule(), 'action' => self::getRouting()->getCurrentRouteAction());
     if (isset($_SESSION)) {
         if (!array_key_exists('___DEBUGINFO___', $_SESSION)) {
             $_SESSION['___DEBUGINFO___'] = array();
         }
         $_SESSION['___DEBUGINFO___'][self::$debug_id] = $tbg_summary;
         while (count($_SESSION['___DEBUGINFO___']) > 25) {
             array_shift($_SESSION['___DEBUGINFO___']);
         }
     }
 }