X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FWebStart.php;h=c83fdea5115b73249da15fec30d5dafcecaecf06;hb=23ff504a823ad8b7bddd575cbb83c7b4de6b22c9;hp=8a58e6f032908e3841f23bc8f2a62f6addea40ef;hpb=c15f569fcec998b0a77a22a7970abfcb6a394d79;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/WebStart.php b/includes/WebStart.php index 8a58e6f032..c83fdea511 100644 --- a/includes/WebStart.php +++ b/includes/WebStart.php @@ -25,24 +25,11 @@ * @file */ -if ( ini_get( 'mbstring.func_overload' ) ) { - die( 'MediaWiki does not support installations where mbstring.func_overload is non-zero.' ); -} - # T17461: Make IE8 turn off content sniffing. Everybody else should ignore this # We're adding it here so that it's *always* set, even for alternate entry # points and when $wgOut gets disabled or overridden. header( 'X-Content-Type-Options: nosniff' ); -/** - * @var float Request start time as fractional seconds since epoch - * @deprecated since 1.25; use $_SERVER['REQUEST_TIME_FLOAT'] or - * WebRequest::getElapsedTime() instead. - */ -$wgRequestTime = $_SERVER['REQUEST_TIME_FLOAT']; - -unset( $IP ); - # Valid web server entry point, enable includes. # Please don't move this line to includes/Defines.php. This line essentially # defines a valid entry point. If you put it in includes/Defines.php, then @@ -50,65 +37,45 @@ unset( $IP ); # its purpose. define( 'MEDIAWIKI', true ); -# Full path to working directory. -# Makes it possible to for example to have effective exclude path in apc. -# __DIR__ breaks symlinked includes, but realpath() returns false -# if we don't have permissions on parent directories. +# Full path to the installation directory. $IP = getenv( 'MW_INSTALL_PATH' ); if ( $IP === false ) { - $IP = realpath( '.' ) ?: dirname( __DIR__ ); -} - -require_once "$IP/includes/PreConfigSetup.php"; - -# Assert that composer dependencies were successfully loaded -# Purposely no leading \ due to it breaking HHVM RepoAuthorative mode -# PHP works fine with both versions -# See https://github.com/facebook/hhvm/issues/5833 -if ( !interface_exists( 'Psr\Log\LoggerInterface' ) ) { - $message = ( - 'MediaWiki requires the PSR-3 logging ' . - "library to be present. This library is not embedded directly in MediaWiki's " . - "git repository and must be installed separately by the end user.\n\n" . - 'Please see mediawiki.org for help on installing ' . - 'the required components.' - ); - echo $message; - trigger_error( $message, E_USER_ERROR ); - die( 1 ); + $IP = dirname( __DIR__ ); } -# Install a header callback -MediaWiki\HeaderCallback::register(); - -if ( defined( 'MW_CONFIG_CALLBACK' ) ) { - # Use a callback function to configure MediaWiki - call_user_func( MW_CONFIG_CALLBACK ); -} else { +// If no LocalSettings file exists, try to display an error page +// (use a callback because it depends on TemplateParser) +if ( !defined( 'MW_CONFIG_CALLBACK' ) ) { if ( !defined( 'MW_CONFIG_FILE' ) ) { define( 'MW_CONFIG_FILE', "$IP/LocalSettings.php" ); } - - # LocalSettings.php is the per site customization file. If it does not exist - # the wiki installer needs to be launched or the generated file uploaded to - # the root wiki directory. Give a hint, if it is not readable by the server. if ( !is_readable( MW_CONFIG_FILE ) ) { - require_once "$IP/includes/NoLocalSettings.php"; - die(); - } - # Include site settings. $IP may be changed (hopefully before the AutoLoader is invoked) - require_once MW_CONFIG_FILE; + function wfWebStartNoLocalSettings() { + # LocalSettings.php is the per-site customization file. If it does not exist + # the wiki installer needs to be launched or the generated file uploaded to + # the root wiki directory. Give a hint, if it is not readable by the server. + global $IP; + require_once "$IP/includes/NoLocalSettings.php"; + die(); + } + + define( 'MW_CONFIG_CALLBACK', 'wfWebStartNoLocalSettings' ); + } } -# Initialise output buffering -# Check that there is no previous output or previously set up buffers, because -# that would cause us to potentially mix gzip and non-gzip output, creating a -# big mess. -if ( ob_get_level() == 0 ) { - require_once "$IP/includes/OutputHandler.php"; - ob_start( 'wfOutputHandler' ); +// Custom setup for WebStart entry point +if ( !defined( 'MW_SETUP_CALLBACK' ) ) { + + function wfWebStartSetup() { + // Initialise output buffering + // Check for previously set up buffers, to avoid a mix of gzip and non-gzip output. + if ( ob_get_level() == 0 ) { + ob_start( 'MediaWiki\\OutputHandler::handle' ); + } + } + + define( 'MW_SETUP_CALLBACK', 'wfWebStartSetup' ); } require_once "$IP/includes/Setup.php";