function ( MediaWikiServices $services ): KeywordsManager { return new KeywordsManager( new AbuseFilterHookRunner( $services->getHookContainer() ) ); }, FilterProfiler::SERVICE_NAME => function ( MediaWikiServices $services ): FilterProfiler { return new FilterProfiler( $services->getMainObjectStash(), new ServiceOptions( FilterProfiler::CONSTRUCTOR_OPTIONS, $services->getMainConfig() ), WikiMap::getCurrentWikiDbDomain()->getId(), $services->getStatsdDataFactory(), LoggerFactory::getInstance( 'AbuseFilter' ) ); }, PermManager::SERVICE_NAME => function ( MediaWikiServices $services ): PermManager { return new PermManager( $services->getPermissionManager() ); }, ChangeTagger::SERVICE_NAME => function ( MediaWikiServices $services ) : ChangeTagger { return new ChangeTagger( $services->getService( ChangeTagsManager::SERVICE_NAME ) ); }, ChangeTagsManager::SERVICE_NAME => function ( MediaWikiServices $services ): ChangeTagsManager { return new ChangeTagsManager( $services->getDBLoadBalancerFactory(), $services->getMainWANObjectCache(), new ServiceOptions( ChangeTagsManager::CONSTRUCTOR_OPTIONS, $services->getMainConfig() ) ); }, BlockAutopromoteStore::SERVICE_NAME => function ( MediaWikiServices $services ): BlockAutopromoteStore { return new BlockAutopromoteStore( ObjectCache::getInstance( 'db-replicated' ), LoggerFactory::getInstance( 'AbuseFilter' ) ); }, ];