X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FdoMaintenance.php;h=2bb2a0f447550c8fa158341a27ce3aa42c793d7d;hb=96c5ca47255fca62c3d8fec95aa411699650ce0a;hp=7547a498f490626ef8051944a389c6c81ea435ba;hpb=154081e4a26ce15bb107da0b170f9e05105f4509;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/doMaintenance.php b/maintenance/doMaintenance.php index 7547a498f4..2bb2a0f447 100644 --- a/maintenance/doMaintenance.php +++ b/maintenance/doMaintenance.php @@ -26,20 +26,23 @@ * @ingroup Maintenance */ -if ( !defined( 'DO_MAINTENANCE' ) ) { +if ( !defined( 'RUN_MAINTENANCE_IF_MAIN' ) ) { echo "This file must be included after Maintenance.php\n"; exit( 1 ); } +// Wasn't included from the file scope, halt execution (probably wanted the class) +// If a class is using commandLine.inc (old school maintenance), they definitely +// cannot be included and will proceed with execution +if( !Maintenance::shouldExecute() && $maintClass != 'CommandLineInc' ) { + return; +} + if ( !$maintClass || !class_exists( $maintClass ) ) { echo "\$maintClass is not set or is set to a non-existent class.\n"; exit( 1 ); } -if ( defined( 'MW_NO_SETUP' ) ) { - return; -} - // Get an object to start us off $maintenance = new $maintClass(); @@ -50,52 +53,54 @@ $maintenance->setup(); // to $maintenance->mSelf. Keep that here for b/c $self = $maintenance->getName(); -# Setup the profiler -global $IP; -if ( file_exists( "$IP/StartProfiler.php" ) ) { - require_once( "$IP/StartProfiler.php" ); +// Detect compiled mode +if ( isset( $_SERVER['MW_COMPILED'] ) ) { + define( 'MW_COMPILED', 1 ); } else { - require_once( "$IP/includes/ProfilerStub.php" ); + # Get the MWInit class + require_once( "$IP/includes/Init.php" ); + require_once( "$IP/includes/AutoLoader.php" ); } +# Stub the profiler +require_once( MWInit::compiledPath( 'includes/profiler/Profiler.php' ) ); + // Some other requires -require_once( "$IP/includes/AutoLoader.php" ); -require_once( "$IP/includes/Defines.php" ); +if ( !defined( 'MW_COMPILED' ) ) { + require_once( "$IP/includes/Defines.php" ); +} +require_once( MWInit::compiledPath( 'includes/DefaultSettings.php' ) ); if ( defined( 'MW_CONFIG_CALLBACK' ) ) { # Use a callback function to configure MediaWiki - require_once( "$IP/includes/DefaultSettings.php" ); - - $callback = MW_CONFIG_CALLBACK; - if ( strpos( $callback, '::' ) !== false ) { - $callback = explode( '::', $callback, 2); - } - call_user_func( $callback ); -} elseif ( file_exists( "$IP/wmf-config/wikimedia-mode" ) ) { - // Load settings, using wikimedia-mode if needed - // Fixme: replace this hack with general farm-friendly code - # TODO FIXME! Wikimedia-specific stuff needs to go away to an ext - # Maybe a hook? - global $cluster; - $wgWikiFarm = true; - $cluster = 'pmtpa'; - require_once( "$IP/includes/SiteConfiguration.php" ); - require( "$IP/wmf-config/wgConf.php" ); - $maintenance->loadWikimediaSettings(); - require( $IP . '/wmf-config/CommonSettings.php' ); + MWFunction::call( MW_CONFIG_CALLBACK ); } else { - require_once( $maintenance->loadSettings() ); + if ( file_exists( "$IP/../wmf-config/wikimedia-mode" ) ) { + // Load settings, using wikimedia-mode if needed + // @todo FIXME: Replace this hack with general farm-friendly code + # @todo FIXME: Wikimedia-specific stuff needs to go away to an ext + # Maybe a hook? + global $cluster; + $cluster = 'pmtpa'; + require( MWInit::interpretedPath( '../wmf-config/wgConf.php' ) ); + } + // Require the configuration (probably LocalSettings.php) + require( $maintenance->loadSettings() ); } if ( $maintenance->getDbType() === Maintenance::DB_ADMIN && - is_readable( "$IP/AdminSettings.php" ) ) + is_readable( "$IP/AdminSettings.php" ) ) { - require( "$IP/AdminSettings.php" ); + require( MWInit::interpretedPath( 'AdminSettings.php' ) ); +} + +if ( $maintenance->getDbType() === Maintenance::DB_NONE ) { + if ( $wgLocalisationCacheConf['storeClass'] === false && ( $wgLocalisationCacheConf['store'] == 'db' || ( $wgLocalisationCacheConf['store'] == 'detect' && !$wgCacheDirectory ) ) ) + $wgLocalisationCacheConf['storeClass'] = 'LCStore_Null'; } $maintenance->finalSetup(); // Some last includes -require_once( "$IP/includes/Setup.php" ); -require_once( "$IP/maintenance/install-utils.inc" ); +require_once( MWInit::compiledPath( 'includes/Setup.php' ) ); // Much much faster startup than creating a title object $wgTitle = null;