MediaWiki  master
MediaWiki\User\UserOptionsManager Class Reference

A service class to control user options. More...

Inheritance diagram for MediaWiki\User\UserOptionsManager:
Collaboration diagram for MediaWiki\User\UserOptionsManager:

Public Member Functions

 __construct (ServiceOptions $options, DefaultOptionsLookup $defaultOptionsLookup, LanguageConverterFactory $languageConverterFactory, ILoadBalancer $loadBalancer, LoggerInterface $logger, HookContainer $hookContainer)
 
 clearUserOptionsCache (UserIdentity $user)
 Clears cached user options. More...
 
 getDefaultOption (string $opt)
 Get a given default option value.
Parameters
string$optName of option to retrieve
Returns
string|null Default option value
More...
 
 getDefaultOptions ()
 Combine the language default options with any site-specific options and add the default language variants.
Returns
array Array of String options
More...
 
 getOption (UserIdentity $user, string $oname, $defaultOverride=null, bool $ignoreHidden=false, int $queryFlags=self::READ_NORMAL)
 Get the user's current setting for a given option.
Parameters
UserIdentity$userThe user to get the option for
string$onameThe option to check
mixed | null$defaultOverrideA default value returned if the option does not exist
bool$ignoreHiddenWhether to ignore the effects of $wgHiddenPrefs
int$queryFlagsA bit field composed of READ_XXX flags
Returns
mixed|null User's current value for the option
See also
getBoolOption()
getIntOption()
More...
 
 getOptionKinds (UserIdentity $userIdentity, IContextSource $context, $options=null)
 Return an associative array mapping preferences keys to the kind of a preference they're used for. More...
 
 getOptions (UserIdentity $user, int $flags=0, int $queryFlags=self::READ_NORMAL)
 Get all user's options.
Parameters
UserIdentity$userThe user to get the option for
int$flagsBitwise combination of: UserOptionsManager::EXCLUDE_DEFAULTS Exclude user options that are set to the default value.
int$queryFlagsA bit field composed of READ_XXX flags
Returns
array
More...
 
 listOptionKinds ()
 Return a list of the types of user options currently returned by UserOptionsManager::getOptionKinds(). More...
 
 loadUserOptions (UserIdentity $user, int $queryFlags=self::READ_NORMAL, array $data=null)
 Loads user options either from cache or from the database. More...
 
 resetOptions (UserIdentity $user, IContextSource $context, $resetKinds=[ 'registered', 'registered-multiselect', 'registered-checkmatrix', 'unused'])
 Reset certain (or all) options to the site defaults. More...
 
 saveOptions (UserIdentity $user)
 Saves the non-default options for this user, as previously set e.g. More...
 
 setOption (UserIdentity $user, string $oname, $val)
 Set the given option for a user. More...
 
- Public Member Functions inherited from MediaWiki\User\UserOptionsLookup
 getBoolOption (UserIdentity $user, string $oname, int $queryFlags=self::READ_NORMAL)
 Get the user's current setting for a given option, as a boolean value. More...
 
 getIntOption (UserIdentity $user, string $oname, int $defaultOverride=0, int $queryFlags=self::READ_NORMAL)
 Get the user's current setting for a given option, as an integer value. More...
 

Public Attributes

const CONSTRUCTOR_OPTIONS
 
- Public Attributes inherited from MediaWiki\User\UserOptionsLookup
const EXCLUDE_DEFAULTS = 1
 Exclude user options that are set to their default value. More...
 
- Public Attributes inherited from IDBAccessObject
const READ_NONE = -1
 Constants for object loading bitfield flags (higher => higher QoS) More...
 

Private Member Functions

 canUseCachedValues (UserIdentity $user, int $queryFlags)
 Determines if it's ok to use cached options values for a given user and query flags. More...
 
 getCacheKey (UserIdentity $user)
 Gets a unique key for various caches. More...
 
 getDBForQueryFlags ( $queryFlags)
 

Private Attributes

DefaultOptionsLookup $defaultOptionsLookup
 
HookRunner $hookRunner
 
LanguageConverterFactory $languageConverterFactory
 
ILoadBalancer $loadBalancer
 
LoggerInterface $logger
 
array $optionsCache = []
 Cached options by user. More...
 
array $originalOptionsCache = []
 Cached original user options fetched from database. More...
 
array $queryFlagsUsedForCaching = []
 Query flags used to retrieve options from database. More...
 
ServiceOptions $serviceOptions
 

Detailed Description

A service class to control user options.

Since
1.35

Definition at line 44 of file UserOptionsManager.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\User\UserOptionsManager::__construct ( ServiceOptions  $options,
DefaultOptionsLookup  $defaultOptionsLookup,
LanguageConverterFactory  $languageConverterFactory,
ILoadBalancer  $loadBalancer,
LoggerInterface  $logger,
HookContainer  $hookContainer 
)
Parameters
ServiceOptions$options
DefaultOptionsLookup$defaultOptionsLookup
LanguageConverterFactory$languageConverterFactory
ILoadBalancer$loadBalancer
LoggerInterface$logger
HookContainer$hookContainer

Definition at line 88 of file UserOptionsManager.php.

References MediaWiki\User\UserOptionsManager\$defaultOptionsLookup, MediaWiki\User\UserOptionsManager\$languageConverterFactory, MediaWiki\User\UserOptionsManager\$loadBalancer, MediaWiki\User\UserOptionsManager\$logger, and MediaWiki\Config\ServiceOptions\assertRequiredOptions().

Member Function Documentation

◆ canUseCachedValues()

MediaWiki\User\UserOptionsManager::canUseCachedValues ( UserIdentity  $user,
int  $queryFlags 
)
private

Determines if it's ok to use cached options values for a given user and query flags.

Parameters
UserIdentity$user
int$queryFlags
Returns
bool

Definition at line 605 of file UserOptionsManager.php.

References MediaWiki\User\UserOptionsManager\getCacheKey(), MediaWiki\User\UserIdentity\isRegistered(), and IDBAccessObject\READ_NONE.

Referenced by MediaWiki\User\UserOptionsManager\loadUserOptions().

◆ clearUserOptionsCache()

MediaWiki\User\UserOptionsManager::clearUserOptionsCache ( UserIdentity  $user)

Clears cached user options.

Definition at line 574 of file UserOptionsManager.php.

References MediaWiki\User\UserOptionsManager\getCacheKey().

◆ getCacheKey()

◆ getDBForQueryFlags()

MediaWiki\User\UserOptionsManager::getDBForQueryFlags (   $queryFlags)
private
Parameters
int$queryFlagsa bit field composed of READ_XXX flags
Returns
IDatabase

Definition at line 594 of file UserOptionsManager.php.

References DBAccessObjectUtils\getDBOptions().

Referenced by MediaWiki\User\UserOptionsManager\loadUserOptions().

◆ getDefaultOption()

MediaWiki\User\UserOptionsManager::getDefaultOption ( string  $opt)

Get a given default option value.

Parameters
string$optName of option to retrieve
Returns
string|null Default option value

Reimplemented from MediaWiki\User\UserOptionsLookup.

Definition at line 115 of file UserOptionsManager.php.

◆ getDefaultOptions()

MediaWiki\User\UserOptionsManager::getDefaultOptions ( )

Combine the language default options with any site-specific options and add the default language variants.

Returns
array Array of String options

Reimplemented from MediaWiki\User\UserOptionsLookup.

Definition at line 108 of file UserOptionsManager.php.

◆ getOption()

MediaWiki\User\UserOptionsManager::getOption ( UserIdentity  $user,
string  $oname,
  $defaultOverride = null,
bool  $ignoreHidden = false,
int  $queryFlags = self::READ_NORMAL 
)

Get the user's current setting for a given option.

Parameters
UserIdentity$userThe user to get the option for
string$onameThe option to check
mixed | null$defaultOverrideA default value returned if the option does not exist
bool$ignoreHiddenWhether to ignore the effects of $wgHiddenPrefs
int$queryFlagsA bit field composed of READ_XXX flags
Returns
mixed|null User's current value for the option
See also
getBoolOption()
getIntOption()

Reimplemented from MediaWiki\User\UserOptionsLookup.

Definition at line 122 of file UserOptionsManager.php.

References MediaWiki\User\UserOptionsManager\loadUserOptions().

◆ getOptionKinds()

MediaWiki\User\UserOptionsManager::getOptionKinds ( UserIdentity  $userIdentity,
IContextSource  $context,
  $options = null 
)

Return an associative array mapping preferences keys to the kind of a preference they're used for.

Different kinds are handled differently when setting or reading preferences.

See UserOptionsManager::listOptionKinds for the list of valid option types that can be provided.

See also
UserOptionsManager::listOptionKinds
Parameters
UserIdentity$userIdentity
IContextSource$context
array | null$optionsAssoc. array with options keys to check as keys. Defaults user options.
Returns
array The key => kind mapping data

Definition at line 297 of file UserOptionsManager.php.

References MediaWiki\$context, HTMLFormField\flattenOptions(), MediaWiki\MediaWikiServices\getInstance(), MediaWiki\User\UserOptionsManager\loadUserOptions(), and User\newFromIdentity().

Referenced by MediaWiki\User\UserOptionsManager\resetOptions().

◆ getOptions()

MediaWiki\User\UserOptionsManager::getOptions ( UserIdentity  $user,
int  $flags = 0,
int  $queryFlags = self::READ_NORMAL 
)

Get all user's options.

Parameters
UserIdentity$userThe user to get the option for
int$flagsBitwise combination of: UserOptionsManager::EXCLUDE_DEFAULTS Exclude user options that are set to the default value.
int$queryFlagsA bit field composed of READ_XXX flags
Returns
array

Reimplemented from MediaWiki\User\UserOptionsLookup.

Definition at line 148 of file UserOptionsManager.php.

References MediaWiki\User\UserOptionsManager\loadUserOptions().

◆ listOptionKinds()

MediaWiki\User\UserOptionsManager::listOptionKinds ( )

Return a list of the types of user options currently returned by UserOptionsManager::getOptionKinds().

Currently, the option kinds are:

  • 'registered' - preferences which are registered in core MediaWiki or by extensions using the UserGetDefaultOptions hook.
  • 'registered-multiselect' - as above, using the 'multiselect' type.
  • 'registered-checkmatrix' - as above, using the 'checkmatrix' type.
  • 'userjs' - preferences with names starting with 'userjs-', intended to be used by user scripts.
  • 'special' - "preferences" that are not accessible via User::getOptions or UserOptionsManager::setOptions.
  • 'unused' - preferences about which MediaWiki doesn't know anything. These are usually legacy options, removed in newer versions.

The API (and possibly others) use this function to determine the possible option types for validation purposes, so make sure to update this when a new option kind is added.

See also
getOptionKinds
Returns
array Option kinds

Definition at line 273 of file UserOptionsManager.php.

Referenced by MediaWiki\User\UserOptionsManager\resetOptions().

◆ loadUserOptions()

MediaWiki\User\UserOptionsManager::loadUserOptions ( UserIdentity  $user,
int  $queryFlags = self::READ_NORMAL,
array  $data = null 
)

Loads user options either from cache or from the database.

Note
Query flags are ignored for anons, since they do not have any options stored in the database. If the UserIdentity was itself obtained from a replica and doesn't have ID set due to replication lag, it will be treated as anon regardless of the query flags passed here.
Parameters
UserIdentity$user
int$queryFlags
array | null$datapreloaded row from the user_properties table
Returns
array

Definition at line 485 of file UserOptionsManager.php.

References $dbr, $res, MediaWiki\User\UserOptionsManager\canUseCachedValues(), MediaWiki\User\UserOptionsManager\getCacheKey(), MediaWiki\User\UserOptionsManager\getDBForQueryFlags(), MediaWiki\User\UserIdentity\getId(), MediaWiki\User\UserIdentity\isRegistered(), User\newFromIdentity(), and LanguageCode\replaceDeprecatedCodes().

Referenced by MediaWiki\User\UserOptionsManager\getOption(), MediaWiki\User\UserOptionsManager\getOptionKinds(), MediaWiki\User\UserOptionsManager\getOptions(), MediaWiki\User\UserOptionsManager\resetOptions(), MediaWiki\User\UserOptionsManager\saveOptions(), and MediaWiki\User\UserOptionsManager\setOption().

◆ resetOptions()

MediaWiki\User\UserOptionsManager::resetOptions ( UserIdentity  $user,
IContextSource  $context,
  $resetKinds = [ 'registered',
'registered-multiselect'  ,
'registered-checkmatrix'  ,
'unused']   
)

Reset certain (or all) options to the site defaults.

The optional parameter determines which kinds of preferences will be reset. Supported values are everything that can be reported by getOptionKinds() and 'all', which forces a reset of all preferences and overrides everything else.

Parameters
UserIdentity$user
IContextSource$contextContext source used when $resetKinds does not contain 'all'.
array | string$resetKindsWhich kinds of preferences to reset. Defaults to [ 'registered', 'registered-multiselect', 'registered-checkmatrix', 'unused' ]

Definition at line 210 of file UserOptionsManager.php.

References MediaWiki\$context, MediaWiki\User\UserOptionsManager\getCacheKey(), MediaWiki\User\UserOptionsManager\getOptionKinds(), MediaWiki\User\UserOptionsManager\listOptionKinds(), MediaWiki\User\UserOptionsManager\loadUserOptions(), and User\newFromIdentity().

◆ saveOptions()

MediaWiki\User\UserOptionsManager::saveOptions ( UserIdentity  $user)

Saves the non-default options for this user, as previously set e.g.

via setOption(), in the database's "user_properties" (preferences) table. Usually used via saveSettings().

Parameters
UserIdentity$user

Definition at line 383 of file UserOptionsManager.php.

References $res, DB_MASTER, MediaWiki\User\UserOptionsManager\getCacheKey(), MediaWiki\User\UserIdentity\getId(), MediaWiki\User\UserIdentity\isRegistered(), MediaWiki\User\UserOptionsManager\loadUserOptions(), and User\newFromIdentity().

◆ setOption()

MediaWiki\User\UserOptionsManager::setOption ( UserIdentity  $user,
string  $oname,
  $val 
)

Set the given option for a user.

You need to call saveOptions() to actually write to the database.

Parameters
UserIdentity$user
string$onameThe option to set
mixed$valNew value to set

Definition at line 183 of file UserOptionsManager.php.

References MediaWiki\User\UserOptionsManager\getCacheKey(), and MediaWiki\User\UserOptionsManager\loadUserOptions().

Member Data Documentation

◆ $defaultOptionsLookup

DefaultOptionsLookup MediaWiki\User\UserOptionsManager::$defaultOptionsLookup
private

◆ $hookRunner

HookRunner MediaWiki\User\UserOptionsManager::$hookRunner
private

Definition at line 75 of file UserOptionsManager.php.

◆ $languageConverterFactory

LanguageConverterFactory MediaWiki\User\UserOptionsManager::$languageConverterFactory
private

◆ $loadBalancer

ILoadBalancer MediaWiki\User\UserOptionsManager::$loadBalancer
private

◆ $logger

LoggerInterface MediaWiki\User\UserOptionsManager::$logger
private

◆ $optionsCache

array MediaWiki\User\UserOptionsManager::$optionsCache = []
private

Cached options by user.

Definition at line 69 of file UserOptionsManager.php.

◆ $originalOptionsCache

array MediaWiki\User\UserOptionsManager::$originalOptionsCache = []
private

Cached original user options fetched from database.

Definition at line 72 of file UserOptionsManager.php.

◆ $queryFlagsUsedForCaching

array MediaWiki\User\UserOptionsManager::$queryFlagsUsedForCaching = []
private

Query flags used to retrieve options from database.

Definition at line 78 of file UserOptionsManager.php.

◆ $serviceOptions

ServiceOptions MediaWiki\User\UserOptionsManager::$serviceOptions
private

Definition at line 54 of file UserOptionsManager.php.

◆ CONSTRUCTOR_OPTIONS

const MediaWiki\User\UserOptionsManager::CONSTRUCTOR_OPTIONS
Initial value:
= [
'HiddenPrefs'
]

Definition at line 49 of file UserOptionsManager.php.


The documentation for this class was generated from the following file: