function ( MediaWikiServices $services ) { return $services->getService( 'ConfigFactory' )->makeConfig( Constants::SKIN_NAME ); }, Constants::SERVICE_FEATURE_MANAGER => function ( MediaWikiServices $services ) { $featureManager = new FeatureManager(); $featureManager->registerRequirement( new DynamicConfigRequirement( $services->getMainConfig(), Constants::CONFIG_KEY_FULLY_INITIALISED, Constants::REQUIREMENT_FULLY_INITIALISED ) ); // Feature: Latest skin // ==================== $context = RequestContext::getMain(); $featureManager->registerRequirement( new LatestSkinVersionRequirement( new SkinVersionLookup( $context->getRequest(), $context->getUser(), $services->getService( Constants::SERVICE_CONFIG ) ) ) ); $featureManager->registerFeature( Constants::FEATURE_LATEST_SKIN, [ Constants::REQUIREMENT_FULLY_INITIALISED, Constants::REQUIREMENT_LATEST_SKIN_VERSION, ] ); // Feature: Languages in sidebar // ================================ $config = $services->getMainConfig(); $languageInHeaderConfig = $config->get( Constants::CONFIG_KEY_LANGUAGE_IN_HEADER ); // Backwards compatibility with config variables that have been set in production. if ( is_bool( $languageInHeaderConfig ) ) { $languageInHeaderConfig = [ 'logged_in' => $languageInHeaderConfig, 'logged_out' => $languageInHeaderConfig, ]; } else { $languageInHeaderConfig = [ 'logged_in' => $languageInHeaderConfig['logged_in'] ?? false, 'logged_out' => $languageInHeaderConfig['logged_out'] ?? false, ]; } $featureManager->registerSimpleRequirement( Constants::REQUIREMENT_LANGUAGE_IN_HEADER, $languageInHeaderConfig[ $context->getUser()->isRegistered() ? 'logged_in' : 'logged_out' ] ); $featureManager->registerFeature( Constants::FEATURE_LANGUAGE_IN_HEADER, [ Constants::REQUIREMENT_FULLY_INITIALISED, Constants::REQUIREMENT_LATEST_SKIN_VERSION, Constants::REQUIREMENT_LANGUAGE_IN_HEADER, ] ); // Feature: Use Wvui Search // ================================ $featureManager->registerRequirement( new WvuiSearchTreatmentRequirement( $services->getMainConfig(), $context->getUser() ) ); $featureManager->registerFeature( Constants::FEATURE_USE_WVUI_SEARCH, [ Constants::REQUIREMENT_FULLY_INITIALISED, Constants::REQUIREMENT_LATEST_SKIN_VERSION, Constants::REQUIREMENT_USE_WVUI_SEARCH ] ); return $featureManager; } ];