loadBalancer = $loadBalancer; $this->domain = $domain; $this->groups = $groups; } /** * @param int $i * @param string[]|null $groups * @param int $flags * @return IDatabase */ private function getConnection( $i, ?array $groups = null, int $flags = 0 ) { $groups ??= $this->groups; return $this->loadBalancer->getConnection( $i, $groups, $this->domain, $flags ); } /** * Returns a connection to the primary DB, for updating. * * @since 1.29 * @since 1.37 Added optional $flags parameter * @param int $flags * @return IDatabase */ public function getWriteConnection( int $flags = 0 ) { return $this->getConnection( DB_PRIMARY, null, $flags ); } /** * Returns a database connection for reading. * * @since 1.29 * @since 1.37 Added optional $flags parameter * @param string[]|null $groups * @param int $flags * @return IReadableDatabase */ public function getReadConnection( ?array $groups = null, int $flags = 0 ) { $groups ??= $this->groups; return $this->getConnection( DB_REPLICA, $groups, $flags ); } }