31 use Wikimedia\Assert\Assert;
49 private $serviceOptions;
58 private $defaultOptions =
null;
66 private bool $isDatabaselessTest;
80 bool $isDatabaselessTest
83 $this->serviceOptions = $options;
84 $this->contentLang = $contentLang;
85 $this->hookRunner =
new HookRunner( $hookContainer );
87 $this->isDatabaselessTest = $isDatabaselessTest;
94 if ( $this->defaultOptions !== null ) {
95 return $this->defaultOptions;
103 $contentLangCode = $this->contentLang->getCode();
105 $staticDefaultVariant = $LangsWithStaticDefaultVariant[$contentLangCode] ?? $contentLangCode;
106 $this->defaultOptions[
'language'] = $contentLangCode;
107 $this->defaultOptions[
'variant'] = $staticDefaultVariant;
109 $staticDefaultVariant = $LangsWithStaticDefaultVariant[$langCode] ?? $langCode;
110 $this->defaultOptions[
"variant-$langCode"] = $staticDefaultVariant;
117 foreach ( $this->nsInfo->getValidNamespaces() as $n ) {
118 $this->defaultOptions[
'searchNs' . $n] = ( $nsSearchDefault[$n] ?? false ) ? 1 : 0;
123 $this->hookRunner->onUserGetDefaultOptions( $this->defaultOptions );
125 return $this->defaultOptions;
134 $defaultOverride =
null,
135 bool $ignoreHidden =
false,
136 int $queryFlags = self::READ_NORMAL
138 $this->verifyUsable( $user, __METHOD__ );
139 return $this->getDefaultOption( $oname ) ?? $defaultOverride;
148 int $queryFlags = self::READ_NORMAL
150 $this->verifyUsable( $user, __METHOD__ );
151 if ( $flags & self::EXCLUDE_DEFAULTS ) {
154 return $this->getDefaultOptions();
169 private function verifyUsable(
UserIdentity $user,
string $fname ) {
170 Assert::precondition(
172 "$fname called on a registered user "
if(!defined('MW_SETUP_CALLBACK'))
Base class for multi-variant language conversion.
static array< string, string > $languagesWithStaticDefaultVariant
static default variant of languages supporting variants for use with DefaultOptionsLookup....
static string[] $languagesWithVariants
languages supporting variants
Base class for language-specific code.
A class containing constants representing the names of configuration variables.
const DefaultUserOptions
Name constant for the DefaultUserOptions setting, for use with Config::get()
const DefaultSkin
Name constant for the DefaultSkin setting, for use with Config::get()
const NamespacesToBeSearchedDefault
Name constant for the NamespacesToBeSearchedDefault setting, for use with Config::get()
The base class for all skins.
static normalizeKey(string $key)
Normalize a skin preference value to a form that can be loaded.