28use Psr\Log\LoggerInterface;
45 private LoggerInterface $logger;
48 private $clearCacheCallbacks;
56 private $instances = [];
78 LoggerInterface $logger,
80 array $clearCacheCallbacks = []
82 $this->options = $options;
83 $this->readOnlyMode = $readOnlyMode;
84 $this->dbLoadBalancerFactory = $dbLoadBalancerFactory;
85 $this->hookContainer = $hookContainer;
86 $this->userEditTracker = $userEditTracker;
87 $this->groupPermissionLookup = $groupPermissionsLookup;
88 $this->jobQueueGroupFactory = $jobQueueGroupFactory;
89 $this->logger = $logger;
90 $this->tempUserConfig = $tempUserConfig;
91 $this->clearCacheCallbacks = $clearCacheCallbacks;
99 if ( is_string( $wikiId ) && $this->dbLoadBalancerFactory->getLocalDomainID() === $wikiId ) {
100 $wikiId = UserIdentity::LOCAL;
102 $key = (string)$wikiId;
103 if ( !isset( $this->instances[$key] ) ) {
107 $this->dbLoadBalancerFactory,
108 $this->hookContainer,
109 $this->userEditTracker,
110 $this->groupPermissionLookup,
111 $this->jobQueueGroupFactory->makeJobQueueGroup( $wikiId ),
113 $this->tempUserConfig,
114 $this->clearCacheCallbacks,
118 return $this->instances[$key];
if(!defined('MW_SETUP_CALLBACK'))