From: Chad Horohoe Date: Wed, 6 Jul 2011 21:01:12 +0000 (+0000) Subject: Clean up the mess that is wfDie (resolves r85918). wfDie() doesn't exist anymore... X-Git-Tag: 1.31.0-rc.0~29024 X-Git-Url: http://git.cyclocoop.org/%28?a=commitdiff_plain;h=b91ace27d9fd0bc24e1a53ac1a4d553d037d7d1c;p=lhc%2Fweb%2Fwiklou.git 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 --- 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

-
- - -