diff options
Diffstat (limited to 'includes/WebStart.php')
-rw-r--r-- | includes/WebStart.php | 55 |
1 files changed, 36 insertions, 19 deletions
diff --git a/includes/WebStart.php b/includes/WebStart.php index 411c211c..edc58cb3 100644 --- a/includes/WebStart.php +++ b/includes/WebStart.php @@ -4,16 +4,6 @@ # starts the profiler and loads the configuration, and optionally loads # Setup.php depending on whether MW_NO_SETUP is defined. -# Test for PHP bug which breaks PHP 5.0.x on 64-bit... -# As of 1.8 this breaks lots of common operations instead -# of just some rare ones like export. -$borked = str_replace( 'a', 'b', array( -1 => -1 ) ); -if( !isset( $borked[-1] ) ) { - echo "PHP 5.0.x is buggy on your 64-bit system; you must upgrade to PHP 5.1.x\n" . - "or higher. ABORTING. (http://bugs.php.net/bug.php?id=34879 for details)\n"; - die( -1 ); -} - # Protect against register_globals # This must be done before any globals are set by the code if ( ini_get( 'register_globals' ) ) { @@ -74,6 +64,7 @@ if ( $IP === false ) { $IP = realpath( '.' ); } + # Start profiler require_once( "$IP/StartProfiler.php" ); wfProfileIn( 'WebStart.php-conf' ); @@ -81,20 +72,46 @@ wfProfileIn( 'WebStart.php-conf' ); # Load up some global defines. require_once( "$IP/includes/Defines.php" ); -# LocalSettings.php is the per site customization file. If it does not exit -# the wiki installer need to be launched or the generated file moved from -# ./config/ to ./ -if( !file_exists( "$IP/LocalSettings.php" ) ) { - require_once( "$IP/includes/DefaultSettings.php" ); # used for printing the version - require_once( "$IP/includes/templates/NoLocalSettings.php" ); - die(); +# Check for PHP 5 +if ( !function_exists( 'version_compare' ) + || version_compare( phpversion(), '5.0.0' ) < 0 +) { + define( 'MW_PHP4', '1' ); + require( "$IP/includes/DefaultSettings.php" ); + require( "$IP/includes/templates/PHP4.php" ); + exit; +} + +# Test for PHP bug which breaks PHP 5.0.x on 64-bit... +# As of 1.8 this breaks lots of common operations instead +# of just some rare ones like export. +$borked = str_replace( 'a', 'b', array( -1 => -1 ) ); +if( !isset( $borked[-1] ) ) { + echo "PHP 5.0.x is buggy on your 64-bit system; you must upgrade to PHP 5.1.x\n" . + "or higher. ABORTING. (http://bugs.php.net/bug.php?id=34879 for details)\n"; + exit; } # Start the autoloader, so that extensions can derive classes from core files require_once( "$IP/includes/AutoLoader.php" ); -# Include site settings. $IP may be changed (hopefully before the AutoLoader is invoked) -require_once( "$IP/LocalSettings.php" ); +if ( defined( 'MW_CONFIG_CALLBACK' ) ) { + # Use a callback function to configure MediaWiki + require_once( "$IP/includes/DefaultSettings.php" ); + call_user_func( MW_CONFIG_CALLBACK ); +} else { + # LocalSettings.php is the per site customization file. If it does not exit + # the wiki installer need to be launched or the generated file moved from + # ./config/ to ./ + if( !file_exists( "$IP/LocalSettings.php" ) ) { + require_once( "$IP/includes/DefaultSettings.php" ); # used for printing the version + require_once( "$IP/includes/templates/NoLocalSettings.php" ); + die(); + } + + # Include site settings. $IP may be changed (hopefully before the AutoLoader is invoked) + require_once( "$IP/LocalSettings.php" ); +} wfProfileOut( 'WebStart.php-conf' ); wfProfileIn( 'WebStart.php-ob_start' ); |