From b91ace27d9fd0bc24e1a53ac1a4d553d037d7d1c Mon Sep 17 00:00:00 2001 From: Chad Horohoe Date: Wed, 6 Jul 2011 21:01:12 +0000 Subject: [PATCH] Clean up the mess that is wfDie (resolves r85918). wfDie() doesn't exist anymore, so don't use it. The only two usages left since r91590 are php version checks for index/load/api.php, and $wgAPIEnabled check in api.php. Consolidate all of the "bailing for invalid version" into PHPVersionError.php. Leaving $wgAPIEnabled as the only user was silly, so just echo and die like wfDie() would've done --- api.php | 22 ++++----- includes/GlobalFunctions.php | 18 -------- index.php | 86 +----------------------------------- load.php | 15 ++----- maintenance/Maintenance.php | 9 ++-- 5 files changed, 17 insertions(+), 133 deletions(-) diff --git a/api.php b/api.php index 7fff04803a..39d27dd6e1 100644 --- a/api.php +++ b/api.php @@ -37,17 +37,10 @@ // So extensions (and other code) can check whether they're running in API mode define( 'MW_API', true ); -// We want a plain message on catastrophic errors that machines can identify -function wfDie( $msg = '' ) { - header( $_SERVER['SERVER_PROTOCOL'] . ' 500 MediaWiki configuration Error', true, 500 ); - echo $msg; - die( 1 ); -} - -// Die on unsupported PHP versions -if( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.2.3' ) < 0 ){ - $version = htmlspecialchars( $wgVersion ); - wfDie( "MediaWiki $version requires at least PHP version 5.2.3." ); +// Bail if PHP is too low +if ( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.2.3' ) < 0 ) { + require( dirname( __FILE__ ) . '/includes/PHPVersionError.php' ); + wfPHPVersionError( 'api.php' ); } // Initialise common code. @@ -67,9 +60,10 @@ if ( !$wgRequest->checkUrlExtension() ) { // Verify that the API has not been disabled if ( !$wgEnableAPI ) { - wfDie( 'MediaWiki API is not enabled for this site. Add the following line to your LocalSettings.php' - . '
$wgEnableAPI=true;
' - ); + header( $_SERVER['SERVER_PROTOCOL'] . ' 500 MediaWiki configuration Error', true, 500 ); + echo( 'MediaWiki API is not enabled for this site. Add the following line to your LocalSettings.php' + . '
$wgEnableAPI=true;
' ); + die(1); } // Selectively allow cross-site AJAX diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php index edf8b88772..166af9ddeb 100644 --- a/includes/GlobalFunctions.php +++ b/includes/GlobalFunctions.php @@ -1243,24 +1243,6 @@ function wfEmptyMsg( $key ) { return MessageCache::singleton()->get( $key, /*useDB*/true, /*content*/false ) === false; } -/** - * Print an error message and die, returning nonzero to the shell if any. Plain die() - * fails to return nonzero to the shell if you pass a string. Entry points may customise - * this function to return a prettier error message, but implementations must not assume - * access to any of the usual MediaWiki infrastructure (AutoLoader, localisation, database, - * etc). This should not be called directly once $wgFullyInitialised is set; instead, - * throw an exception and let Exception.php handle whether or not it's possible to show - * a prettier error. - * - * @param $msg String - */ -if( !function_exists( 'wfDie' ) ){ - function wfDie( $msg = '' ) { - echo $msg; - die( 1 ); - } -} - /** * Throw a debugging exception. This function previously once exited the process, * but now throws an exception instead, with similar results. diff --git a/index.php b/index.php index fb415bcf5f..8b53e2ca89 100644 --- a/index.php +++ b/index.php @@ -40,25 +40,8 @@ // has structures (try/catch, foo()->bar(), etc etc) which throw parse errors in PHP 4. // Setup.php and ObjectCache.php have structures invalid in PHP 5.0 and 5.1, respectively. if ( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.2.3' ) < 0 ) { - $phpversion = htmlspecialchars( phpversion() ); - $errorMsg = << - MediaWiki requires PHP 5.2.3 or higher. You are running PHP $phpversion. -

-

- Please consider upgrading your copy of PHP. - PHP versions less than 5.3.0 are no longer supported by the PHP Group and will not receive - security or bugfix updates. -

-

- If for some reason you are unable to upgrade your PHP version, you will need to - download an older version - of MediaWiki from our website. See our - compatibility page - for details of which versions are compatible with prior versions of PHP. -

-ENDL; - wfDie( $errorMsg ); + require( dirname( __FILE__ ) . '/includes/PHPVersionError.php' ); + wfPHPVersionError( 'index.php' ); } # Initialise common code. This gives us access to GlobalFunctions, the AutoLoader, and @@ -72,68 +55,3 @@ if ( isset( $_SERVER['MW_COMPILED'] ) ) { $mediaWiki = new MediaWiki(); $mediaWiki->run(); - -/** - * Display something vaguely comprehensible in the event of a totally unrecoverable error. - * Does not assume access to *anything*; no globals, no autloader, no database, no localisation. - * Safe for PHP4 (and putting this here means that WebStart.php and GlobalSettings.php - * no longer need to be). - * - * Calling this function kills execution immediately. - * - * @param $errorMsg String fully-escaped HTML - */ -function wfDie( $errorMsg ){ - // Use the version set in DefaultSettings if possible, but don't rely on it - global $wgVersion, $wgLogo; - $version = isset( $wgVersion ) && $wgVersion - ? htmlspecialchars( $wgVersion ) - : ''; - - $script = $_SERVER['SCRIPT_NAME']; - $path = pathinfo( $script, PATHINFO_DIRNAME ) . '/'; - $path = str_replace( '//', '/', $path ); - - $logo = isset( $wgLogo ) && $wgLogo - ? $wgLogo - : $path . 'skins/common/images/mediawiki.png'; - $encLogo = htmlspecialchars( $logo ); - - header( $_SERVER['SERVER_PROTOCOL'] . ' 500 MediaWiki configuration Error', true, 500 ); - header( 'Content-type: text/html; charset=UTF-8' ); - // Don't cache error pages! They cause no end of trouble... - header( 'Cache-control: none' ); - header( 'Pragma: nocache' ); - - ?> - - - - MediaWiki <?php echo $version; ?> - - - - - The MediaWiki logo -

MediaWiki internal error

-
- - -