die( 'MediaWiki does not support installations where mbstring.func_overload is non-zero.' );
}
+// Define MW_ENTRY_POINT if it's not already, so that config code can check the
+// value without using defined()
+if ( !defined( 'MW_ENTRY_POINT' ) ) {
+ /**
+ * The entry point, which may be either the script filename without the
+ * file extension, or "cli" for maintenance scripts, or "unknown" for any
+ * entry point that does not set the constant.
+ */
+ define( 'MW_ENTRY_POINT', 'unknown' );
+}
+
// Start the autoloader, so that extensions can derive classes from core files
require_once "$IP/includes/AutoLoader.php";
}
}
-if ( !empty( $wgActionPaths ) && !isset( $wgActionPaths['view'] ) ) {
- // 'view' is assumed the default action path everywhere in the code
- // but is rarely filled in $wgActionPaths
- $wgActionPaths['view'] = $wgArticlePath;
-}
-
if ( $wgResourceBasePath === null ) {
$wgResourceBasePath = $wgScriptPath;
}
if ( $wgLocalInterwiki ) {
// Hard deprecated in 1.34.
wfDeprecated( '$wgLocalInterwiki – use $wgLocalInterwikis instead', '1.23' );
+ // @phan-suppress-next-line PhanUndeclaredVariableDim
array_unshift( $wgLocalInterwikis, $wgLocalInterwiki );
}
$wgMetaNamespace = str_replace( ' ', '_', $wgSitename );
}
-// Default value is 2000 or the suhosin limit if it is between 1 and 2000
-if ( $wgResourceLoaderMaxQueryLength === false ) {
- $suhosinMaxValueLength = (int)ini_get( 'suhosin.get.max_value_length' );
- if ( $suhosinMaxValueLength > 0 && $suhosinMaxValueLength < 2000 ) {
- $wgResourceLoaderMaxQueryLength = $suhosinMaxValueLength;
- } else {
- $wgResourceLoaderMaxQueryLength = 2000;
- }
- unset( $suhosinMaxValueLength );
-}
-
// Ensure the minimum chunk size is less than PHP upload limits or the maximum
// upload size.
$wgMinUploadChunkSize = min(
if ( defined( 'MW_NO_SESSION' ) ) {
// If the entry point wants no session, force 'disable' here unless they
// specifically set it to the (undocumented) 'warn'.
+ // @phan-suppress-next-line PhanUndeclaredConstant
$wgPHPSessionHandling = MW_NO_SESSION === 'warn' ? 'warn' : 'disable';
}
$wgMemc = ObjectCache::getLocalClusterInstance();
$messageMemc = wfGetMessageCacheStorage();
-wfDebugLog( 'caches',
- 'cluster: ' . get_class( $wgMemc ) .
- ', WAN: ' . ( $wgMainWANCache === CACHE_NONE ? 'CACHE_NONE' : $wgMainWANCache ) .
- ', stash: ' . $wgMainStash .
- ', message: ' . get_class( $messageMemc ) .
- ', session: ' . get_class( ObjectCache::getInstance( $wgSessionCacheType ) )
-);
-
// Most of the config is out, some might want to run hooks here.
Hooks::run( 'SetupAfterCache' );
// Initialize the session
try {
$session = MediaWiki\Session\SessionManager::getGlobalSession();
- } catch ( OverflowException $ex ) {
- if ( isset( $ex->sessionInfos ) && count( $ex->sessionInfos ) >= 2 ) {
- // The exception is because the request had multiple possible
- // sessions tied for top priority. Report this to the user.
- $list = [];
- foreach ( $ex->sessionInfos as $info ) {
- $list[] = $info->getProvider()->describe( $wgContLang );
- }
- $list = $wgContLang->listToText( $list );
- throw new HttpError( 400,
- Message::newFromKey( 'sessionmanager-tie', $list )->inLanguage( $wgContLang )->plain()
- );
+ } catch ( MediaWiki\Session\SessionOverflowException $ex ) {
+ // The exception is because the request had multiple possible
+ // sessions tied for top priority. Report this to the user.
+ $list = [];
+ foreach ( $ex->getSessionInfos() as $info ) {
+ $list[] = $info->getProvider()->describe( $wgContLang );
}
-
- // Not the one we want, rethrow
- throw $ex;
+ $list = $wgContLang->listToText( $list );
+ throw new HttpError( 400,
+ Message::newFromKey( 'sessionmanager-tie', $list )->inLanguage( $wgContLang )->plain()
+ );
}
if ( $session->isPersistent() ) {