Merge "add since tags"
authorReedy <reedy@wikimedia.org>
Wed, 16 May 2012 23:48:49 +0000 (23:48 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 16 May 2012 23:48:49 +0000 (23:48 +0000)
1  2 
includes/debug/Debug.php

diff --combined includes/debug/Debug.php
@@@ -27,6 -27,8 +27,8 @@@
   * to explicitly call MWDebug::init() to enabled them.
   *
   * @todo Profiler support
+  *
+  * @since 1.19
   */
  class MWDebug {
  
@@@ -69,6 -71,8 +71,8 @@@
        /**
         * Enabled the debugger and load resource module.
         * This is called by Setup.php when $wgDebugToolbar is true.
+        *
+        * @since 1.19
         */
        public static function init() {
                self::$enabled = true;
@@@ -78,6 -82,7 +82,7 @@@
         * Add ResourceLoader modules to the OutputPage object if debugging is
         * enabled.
         *
+        * @since 1.19
         * @param $out OutputPage
         */
        public static function addModules( OutputPage $out ) {
@@@ -91,6 -96,7 +96,7 @@@
         *
         * @todo Add support for passing objects
         *
+        * @since 1.19
         * @param $str string
         */
        public static function log( $str ) {
  
        /**
         * Returns internal log array
+        * @since 1.19
         * @return array
         */
        public static function getLog() {
  
        /**
         * Clears internal log array and deprecation tracking
+        * @since 1.19
         */
        public static function clearLog() {
                self::$log = array();
        /**
         * Adds a warning entry to the log
         *
+        * @since 1.19
         * @param $msg
         * @param int $callerOffset
         * @return mixed
        /**
         * Adds a depreciation entry to the log, along with a backtrace
         *
+        * @since 1.19
         * @param $function
         * @param $version
         * @param $component
         * This is a method to pass messages from wfDebug to the pretty debugger.
         * Do NOT use this method, use MWDebug::log or wfDebug()
         *
+        * @since 1.19
         * @param $str string
         */
        public static function debugMsg( $str ) {
        /**
         * Begins profiling on a database query
         *
+        * @since 1.19
         * @param $sql string
         * @param $function string
         * @param $isMaster bool
        /**
         * Calculates how long a query took.
         *
+        * @since 1.19
         * @param $id int
         */
        public static function queryTime( $id ) {
        /**
         * Returns the HTML to add to the page for the toolbar
         *
+        * @since 1.19
         * @param $context IContextSource
         * @return string
         */
                        return '';
                }
  
 -              global $wgVersion, $wgRequestTime;
                MWDebug::log( 'MWDebug output complete' );
 +              $debugInfo = self::getDebugInfo( $context );
 +
 +              // Cannot use OutputPage::addJsConfigVars because those are already outputted
 +              // by the time this method is called.
 +              $html = Html::inlineScript(
 +                      ResourceLoader::makeLoaderConditionalScript(
 +                              ResourceLoader::makeConfigSetScript( array( 'debugInfo' => $debugInfo ) )
 +                      )
 +              );
 +
 +              return $html;
 +      }
 +
 +      /**
 +       * Append the debug info to given ApiResult
 +       *
 +       * @param $context IContextSource
 +       * @param $result ApiResult
 +       */
 +      public static function appendDebugInfoToApiResult( IContextSource $context, ApiResult $result ) {
 +              if ( !self::$enabled ) {
 +                      return;
 +              }
 +
 +              MWDebug::log( 'MWDebug output complete' );
 +              $debugInfo = self::getDebugInfo( $context );
 +
 +              $result->setIndexedTagName( $debugInfo, 'debuginfo' );
 +              $result->setIndexedTagName( $debugInfo['log'], 'line' );
 +              foreach( $debugInfo['debugLog'] as $index => $debugLogText ) {
 +                      $vals = array();
 +                      ApiResult::setContent( $vals, $debugLogText );
 +                      $debugInfo['debugLog'][$index] = $vals; //replace
 +              }
 +              $result->setIndexedTagName( $debugInfo['debugLog'], 'msg' );
 +              $result->setIndexedTagName( $debugInfo['queries'], 'query' );
 +              $result->setIndexedTagName( $debugInfo['includes'], 'queries' );
 +              $result->addValue( array(), 'debuginfo', $debugInfo );
 +      }
 +
 +      /**
 +       * Returns the HTML to add to the page for the toolbar
 +       *
 +       * @param $context IContextSource
 +       * @return array
 +       */
 +      public static function getDebugInfo( IContextSource $context ) {
 +              if ( !self::$enabled ) {
 +                      return array();
 +              }
 +
 +              global $wgVersion, $wgRequestTime;
                $request = $context->getRequest();
 -              $debugInfo = array(
 +              return array(
                        'mwVersion' => $wgVersion,
                        'phpVersion' => PHP_VERSION,
                        'gitRevision' => GitInfo::headSHA1(),
                        'memoryPeak' => $context->getLanguage()->formatSize( memory_get_peak_usage() ),
                        'includes' => self::getFilesIncluded( $context ),
                );
 -
 -              // Cannot use OutputPage::addJsConfigVars because those are already outputted
 -              // by the time this method is called.
 -              $html = Html::inlineScript(
 -                      ResourceLoader::makeLoaderConditionalScript(
 -                              ResourceLoader::makeConfigSetScript( array( 'debugInfo' => $debugInfo ) )
 -                      )
 -              );
 -
 -              return $html;
        }
  }