Legoktm has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/174191

Change subject: Profiler: Explicitly convert output type to class name
......................................................................

Profiler: Explicitly convert output type to class name

Follows-up b8d93fb4fd06.

Change-Id: I50faa25fdc4fb980e0ff71014b8d1b2a5818af80
---
M includes/profiler/Profiler.php
1 file changed, 16 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/91/174191/1

diff --git a/includes/profiler/Profiler.php b/includes/profiler/Profiler.php
index 12e999b..d23c777 100644
--- a/includes/profiler/Profiler.php
+++ b/includes/profiler/Profiler.php
@@ -39,6 +39,15 @@
        /** @var TransactionProfiler */
        protected $trxProfiler;
 
+       /**
+        * @var array Mapping of output type to class name
+        */
+       private static $outputTypes = array(
+               'db' => 'ProfilerOutputDb',
+               'text' => 'ProfilerOutputText',
+               'udp' => 'ProfilerOutputUdp',
+       );
+
        // @codingStandardsIgnoreStart 
PSR2.Classes.PropertyDeclaration.Underscore
        /** @var Profiler Do not call this outside Profiler and ProfileSection 
*/
        public static $__instance = null;
@@ -131,6 +140,7 @@
        /**
         * Log the data to some store or even the page output
         *
+        * @throws MWException
         * @since 1.25
         */
        public function logData() {
@@ -147,7 +157,12 @@
                }
 
                foreach ( $output as $outType ) {
-                       $class = 'ProfilerOutput' . ucfirst( strtolower( 
$outType ) );
+                       if ( isset( self::$outputTypes[$outType] ) ) {
+                               $class = self::$outputTypes[$outType];
+                       } else {
+                               throw new MWException( "'$outType' is an 
invalid output type" );
+                       }
+                       /** @var ProfilerOutput $profileOut */
                        $profileOut = new $class( $this, $this->params );
                        if ( $profileOut->canUse() ) {
                                $profileOut->log();

-- 
To view, visit https://gerrit.wikimedia.org/r/174191
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I50faa25fdc4fb980e0ff71014b8d1b2a5818af80
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Legoktm <legoktm.wikipe...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to