options = $options; $this->readOnlyMode = $readOnlyMode; $this->dbLoadBalancerFactory = $dbLoadBalancerFactory; $this->hookContainer = $hookContainer; $this->userEditTracker = $userEditTracker; $this->groupPermissionLookup = $groupPermissionsLookup; $this->jobQueueGroupFactory = $jobQueueGroupFactory; $this->logger = $logger; $this->tempUserConfig = $tempUserConfig; $this->clearCacheCallbacks = $clearCacheCallbacks; } /** * @param string|false $wikiId * @return UserGroupManager */ public function getUserGroupManager( $wikiId = UserIdentity::LOCAL ): UserGroupManager { if ( is_string( $wikiId ) && $this->dbLoadBalancerFactory->getLocalDomainID() === $wikiId ) { $wikiId = UserIdentity::LOCAL; } $key = (string)$wikiId; if ( !isset( $this->instances[$key] ) ) { $this->instances[$key] = new UserGroupManager( $this->options, $this->readOnlyMode, $this->dbLoadBalancerFactory, $this->hookContainer, $this->userEditTracker, $this->groupPermissionLookup, $this->jobQueueGroupFactory->makeJobQueueGroup( $wikiId ), $this->logger, $this->tempUserConfig, $this->clearCacheCallbacks, $wikiId ); } return $this->instances[$key]; } }