X-Git-Url: http://git.cyclocoop.org/%27%20.%20%24prefix%20.%20Wiki::transformTitleToURI%28%24matches%5B1%5D%29%20.%20%27?a=blobdiff_plain;f=includes%2FSetup.php;h=41d59455cfe6400352ff7c2ccad05d3550229f3f;hb=84fa176c9c14cca4dee674c284deb6e6796d928a;hp=2c315a31554159ae077c7f3ce2ada0597710a61d;hpb=47db328765acc5856fea31ad9bb31a9265feebb0;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Setup.php b/includes/Setup.php index 2c315a3155..41d59455cf 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -533,7 +533,7 @@ if ( $wgInvalidateCacheOnLocalSettingsChange ) { } if ( $wgNewUserLog ) { - // Add a new log type + // Add new user log type $wgLogTypes[] = 'newusers'; $wgLogNames['newusers'] = 'newuserlogpage'; $wgLogHeaders['newusers'] = 'newuserlogpagetext'; @@ -544,6 +544,12 @@ if ( $wgNewUserLog ) { $wgLogActionsHandlers['newusers/autocreate'] = NewUsersLogFormatter::class; } +if ( $wgPageCreationLog ) { + // Add page creation log type + $wgLogTypes[] = 'create'; + $wgLogActionsHandlers['create/create'] = LogFormatter::class; +} + if ( $wgPageLanguageUseDB ) { $wgLogTypes[] = 'pagelang'; $wgLogActionsHandlers['pagelang/pagelang'] = PageLangLogFormatter::class; @@ -627,10 +633,6 @@ define( 'MW_SERVICE_BOOTSTRAP_COMPLETE', 1 ); MWExceptionHandler::installHandler(); -require_once "$IP/includes/compat/normal/UtfNormalUtil.php"; - -$ps_validation = Profiler::instance()->scopedProfileIn( $fname . '-validation' ); - // T48998: Bail out early if $wgArticlePath is non-absolute foreach ( [ 'wgArticlePath', 'wgVariantArticlePath' ] as $varName ) { if ( $$varName && !preg_match( '/^(https?:\/\/|\/)/', $$varName ) ) { @@ -643,8 +645,6 @@ foreach ( [ 'wgArticlePath', 'wgVariantArticlePath' ] as $varName ) { } } -Profiler::instance()->scopedProfileOut( $ps_validation ); - $ps_default2 = Profiler::instance()->scopedProfileIn( $fname . '-defaults2' ); if ( $wgCanonicalServer === false ) { @@ -705,7 +705,7 @@ if ( $wgMainWANCache === false ) { Profiler::instance()->scopedProfileOut( $ps_default2 ); -$ps_misc = Profiler::instance()->scopedProfileIn( $fname . '-misc1' ); +$ps_misc = Profiler::instance()->scopedProfileIn( $fname . '-misc' ); // Raise the memory limit if it's too low wfMemoryLimit(); @@ -736,20 +736,20 @@ if ( !$wgDBerrorLogTZ ) { // Initialize the request object in $wgRequest $wgRequest = RequestContext::getMain()->getRequest(); // BackCompat // Set user IP/agent information for agent session consistency purposes +$cpPosInfo = LBFactory::getCPInfoFromCookieValue( + // The cookie has no prefix and is set by MediaWiki::preOutputCommit() + $wgRequest->getCookie( 'cpPosIndex', '' ), + // Mitigate broken client-side cookie expiration handling (T190082) + time() - ChronologyProtector::POSITION_COOKIE_TTL +); MediaWikiServices::getInstance()->getDBLoadBalancerFactory()->setRequestInfo( [ 'IPAddress' => $wgRequest->getIP(), 'UserAgent' => $wgRequest->getHeader( 'User-Agent' ), 'ChronologyProtection' => $wgRequest->getHeader( 'ChronologyProtection' ), - 'ChronologyPositionIndex' => $wgRequest->getInt( - 'cpPosIndex', - LBFactory::getCPIndexFromCookieValue( - // The cookie has no prefix and is set by MediaWiki::preOutputCommit() - $wgRequest->getCookie( 'cpPosIndex', '' ), - // Mitigate broken client-side cookie expiration handling (T190082) - time() - ChronologyProtector::POSITION_COOKIE_TTL - ) - ) + 'ChronologyPositionIndex' => $wgRequest->getInt( 'cpPosIndex', $cpPosInfo['index'] ), + 'ChronologyClientId' => $cpPosInfo['clientId'] ] ); +unset( $cpPosInfo ); // Make sure that object caching does not undermine the ChronologyProtector improvements if ( $wgRequest->getCookie( 'UseDC', '' ) === 'master' ) { // The user is pinned to the primary DC, meaning that they made recent changes which should @@ -774,19 +774,9 @@ if ( $wgCommandLineMode ) { wfDebug( $debug ); } -Profiler::instance()->scopedProfileOut( $ps_misc ); -$ps_memcached = Profiler::instance()->scopedProfileIn( $fname . '-memcached' ); - $wgMemc = wfGetMainCache(); $messageMemc = wfGetMessageCacheStorage(); -/** - * @deprecated since 1.30 - */ -$parserMemc = new DeprecatedGlobal( 'parserMemc', function () { - return MediaWikiServices::getInstance()->getParserCache()->getCacheStorage(); -}, '1.30' ); - wfDebugLog( 'caches', 'cluster: ' . get_class( $wgMemc ) . ', WAN: ' . ( $wgMainWANCache === CACHE_NONE ? 'CACHE_NONE' : $wgMainWANCache ) . @@ -795,7 +785,7 @@ wfDebugLog( 'caches', ', session: ' . get_class( ObjectCache::getInstance( $wgSessionCacheType ) ) ); -Profiler::instance()->scopedProfileOut( $ps_memcached ); +Profiler::instance()->scopedProfileOut( $ps_misc ); // Most of the config is out, some might want to run hooks here. Hooks::run( 'SetupAfterCache' ); @@ -827,8 +817,6 @@ if ( $wgAuth && !$wgAuth instanceof MediaWiki\Auth\AuthManagerAuthPlugin ) { ], '$wgAuth is ' . get_class( $wgAuth ) ); } -// Set up the session -$ps_session = Profiler::instance()->scopedProfileIn( $fname . '-session' ); /** * @var MediaWiki\Session\SessionId|null $wgInitialSessionId The persistent * session ID (if any) loaded at startup @@ -837,7 +825,7 @@ $wgInitialSessionId = null; if ( !defined( 'MW_NO_SESSION' ) && !$wgCommandLineMode ) { // If session.auto_start is there, we can't touch session name if ( $wgPHPSessionHandling !== 'disable' && !wfIniGetBool( 'session.auto_start' ) ) { - session_name( $wgSessionName ? $wgSessionName : $wgCookiePrefix . '_session' ); + session_name( $wgSessionName ?: $wgCookiePrefix . '_session' ); } // Create the SessionManager singleton and set up our session handler, @@ -892,7 +880,6 @@ if ( !defined( 'MW_NO_SESSION' ) && !$wgCommandLineMode ) { ); } } -Profiler::instance()->scopedProfileOut( $ps_session ); /** * @var User $wgUser @@ -929,22 +916,7 @@ $ps_extensions = Profiler::instance()->scopedProfileIn( $fname . '-extensions' ) // of the extension file. This allows the extension to perform // any necessary initialisation in the fully initialised environment foreach ( $wgExtensionFunctions as $func ) { - // Allow closures in PHP 5.3+ - if ( is_object( $func ) && $func instanceof Closure ) { - $profName = $fname . '-extensions-closure'; - } elseif ( is_array( $func ) ) { - if ( is_object( $func[0] ) ) { - $profName = $fname . '-extensions-' . get_class( $func[0] ) . '::' . $func[1]; - } else { - $profName = $fname . '-extensions-' . implode( '::', $func ); - } - } else { - $profName = $fname . '-extensions-' . strval( $func ); - } - - $ps_ext_func = Profiler::instance()->scopedProfileIn( $profName ); call_user_func( $func ); - Profiler::instance()->scopedProfileOut( $ps_ext_func ); } // If the session user has a 0 id but a valid name, that means we need to @@ -952,13 +924,11 @@ foreach ( $wgExtensionFunctions as $func ) { if ( !defined( 'MW_NO_SESSION' ) && !$wgCommandLineMode ) { $sessionUser = MediaWiki\Session\SessionManager::getGlobalSession()->getUser(); if ( $sessionUser->getId() === 0 && User::isValidUserName( $sessionUser->getName() ) ) { - $ps_autocreate = Profiler::instance()->scopedProfileIn( $fname . '-autocreate' ); $res = MediaWiki\Auth\AuthManager::singleton()->autoCreateUser( $sessionUser, MediaWiki\Auth\AuthManager::AUTOCREATE_SOURCE_SESSION, true ); - Profiler::instance()->scopedProfileOut( $ps_autocreate ); \MediaWiki\Logger\LoggerFactory::getInstance( 'authevents' )->info( 'Autocreation attempt', [ 'event' => 'autocreate', 'status' => $res,