X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FMaintenance.php;h=108fe9f12ef236d6c4d47a9db45c7b3b68eb54e7;hb=57c7194273d49c311f41c55cad93394b26e6a27c;hp=8d30df4c61691f600a45b6ca761e93ceea8fba28;hpb=81a84074e48bd34981ffd576bd11fb9aa4d37a53;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/Maintenance.php b/maintenance/Maintenance.php index 8d30df4c61..108fe9f12e 100644 --- a/maintenance/Maintenance.php +++ b/maintenance/Maintenance.php @@ -20,8 +20,8 @@ * @defgroup Maintenance Maintenance */ -// Make sure we're on PHP5.3.2 or better -if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.2' ) < 0 ) { +// Make sure we're on PHP5.3.3 or better +if ( !function_exists( 'version_compare' ) || version_compare( PHP_VERSION, '5.3.3' ) < 0 ) { // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+ require_once dirname( __FILE__ ) . '/../includes/PHPVersionError.php'; wfPHPVersionError( 'cli' ); @@ -102,7 +102,7 @@ abstract class Maintenance { private $mDependantParameters = array(); /** - * Used by getDD() / setDB() + * Used by getDB() / setDB() * @var DatabaseBase */ private $mDb = null; @@ -446,7 +446,7 @@ abstract class Maintenance { $this->addOption( 'server', "The protocol and server name to use in URLs, e.g. " . "http://en.wikipedia.org. This is sometimes necessary because " . "server name detection may fail in command line scripts.", false, true ); - $this->addOption( 'profiler', 'Set to "text" or "trace" to show profiling output', false, true ); + $this->addOption( 'profiler', 'Profiler output format (usually "text")', false, true ); # Save generic options to display them separately in help $this->mGenericParameters = $this->mParams; @@ -597,6 +597,23 @@ abstract class Maintenance { } } + /** + * Activate the profiler (assuming $wgProfiler is set) + */ + protected function activateProfiler() { + global $wgProfiler; + + $output = $this->getOption( 'profiler' ); + if ( $output && is_array( $wgProfiler ) ) { + $class = $wgProfiler['class']; + $profiler = new $class( + array( 'sampling' => 1, 'output' => $output ) + $wgProfiler + ); + $profiler->setTemplated( true ); + Profiler::replaceStubInstance( $profiler ); + } + } + /** * Clear all params and arguments. */ @@ -920,26 +937,19 @@ abstract class Maintenance { LBFactory::destroyInstance(); } + // Per-script profiling; useful for debugging + $this->activateProfiler(); + $this->afterFinalSetup(); $wgShowSQLErrors = true; - // @codingStandardsIgnoreStart Allow error supppression. wfSuppressWarnings() - // is not avaiable. + // @codingStandardsIgnoreStart Allow error suppression. wfSuppressWarnings() + // is not available. @set_time_limit( 0 ); // @codingStandardsIgnoreStart $this->adjustMemoryLimit(); - - // Per-script profiling; useful for debugging - $forcedProfiler = $this->getOption( 'profiler' ); - if ( $forcedProfiler === 'text' ) { - Profiler::setInstance( new ProfilerSimpleText( array() ) ); - Profiler::instance()->setTemplated( true ); - } elseif ( $forcedProfiler === 'trace' ) { - Profiler::setInstance( new ProfilerSimpleTrace( array() ) ); - Profiler::instance()->setTemplated( true ); - } } /** @@ -1174,7 +1184,7 @@ abstract class Maintenance { * We default as considering stdin a tty (for nice readline methods) * but treating stout as not a tty to avoid color codes * - * @param int $fd File descriptor + * @param mixed $fd File descriptor * @return bool */ public static function posix_isatty( $fd ) {