28use Psr\Log\LoggerInterface;
46 private LoggerInterface $logger;
49 private $clearCacheCallbacks;
57 private $instances = [];
79 LoggerInterface $logger,
81 array $clearCacheCallbacks = []
83 $this->options = $options;
84 $this->readOnlyMode = $readOnlyMode;
85 $this->dbLoadBalancerFactory = $dbLoadBalancerFactory;
86 $this->hookContainer = $hookContainer;
87 $this->userEditTracker = $userEditTracker;
88 $this->groupPermissionLookup = $groupPermissionsLookup;
89 $this->jobQueueGroupFactory = $jobQueueGroupFactory;
90 $this->logger = $logger;
91 $this->tempUserConfig = $tempUserConfig;
92 $this->clearCacheCallbacks = $clearCacheCallbacks;
100 if ( is_string( $wikiId ) && $this->dbLoadBalancerFactory->getLocalDomainID() === $wikiId ) {
101 $wikiId = UserIdentity::LOCAL;
103 $key = (string)$wikiId;
104 if ( !isset( $this->instances[$key] ) ) {
108 $this->dbLoadBalancerFactory,
109 $this->hookContainer,
110 $this->userEditTracker,
111 $this->groupPermissionLookup,
112 $this->jobQueueGroupFactory->makeJobQueueGroup( $wikiId ),
114 $this->tempUserConfig,
115 $this->clearCacheCallbacks,
119 return $this->instances[$key];
if(!defined('MW_SETUP_CALLBACK'))