MediaWiki REL1_35
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.
 
 getDefaultOption (string $opt)
 Get a given default option value.
Parameters
string$optName of option to retrieve
Returns
string|null Default option value

 
 getDefaultOptions ()
 Combine the language default options with any site-specific options and add the default language variants.
Returns
array Array of String options

 
 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()

 
 getOptionKinds (UserIdentity $userIdentity, IContextSource $context, $options=null)
 Return an associative array mapping preferences keys to the kind of a preference they're used for.
 
 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

 
 listOptionKinds ()
 Return a list of the types of user options currently returned by UserOptionsManager::getOptionKinds().
 
 loadUserOptions (UserIdentity $user, int $queryFlags=self::READ_NORMAL, array $data=null)
 Loads user options either from cache or from the database.
 
 resetOptions (UserIdentity $user, IContextSource $context, $resetKinds=[ 'registered', 'registered-multiselect', 'registered-checkmatrix', 'unused'])
 Reset certain (or all) options to the site defaults.
 
 saveOptions (UserIdentity $user)
 Saves the non-default options for this user, as previously set e.g.
 
 setOption (UserIdentity $user, string $oname, $val)
 Set the given option for a user.
 
- 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.
 
 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.
 

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.
 
- Public Attributes inherited from IDBAccessObject
const READ_LOCKING = self::READ_LATEST | 2
 Constants for object loading bitfield flags (higher => higher QoS)
 
const READ_NONE = -1
 

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.
 
 getCacheKey (UserIdentity $user)
 Gets a key for various caches.
 
 getDBForQueryFlags ( $queryFlags)
 

Private Attributes

DefaultOptionsLookup $defaultOptionsLookup
 
HookRunner $hookRunner
 
LanguageConverterFactory $languageConverterFactory
 
ILoadBalancer $loadBalancer
 
LoggerInterface $logger
 
array $optionsCache = []
 Cached options by user.
 
array $originalOptionsCache = []
 Cached original user options fetched from database.
 
array $queryFlagsUsedForCaching = []
 Query flags used to retrieve options from database.
 
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 85 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 602 of file UserOptionsManager.php.

◆ clearUserOptionsCache()

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

Clears cached user options.

Definition at line 571 of file UserOptionsManager.php.

◆ getCacheKey()

MediaWiki\User\UserOptionsManager::getCacheKey ( UserIdentity  $user)
private

Gets a key for various caches.

Parameters
UserIdentity$user
Returns
string

Definition at line 583 of file UserOptionsManager.php.

◆ getDBForQueryFlags()

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

Definition at line 591 of file UserOptionsManager.php.

◆ 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 112 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 105 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 119 of file UserOptionsManager.php.

◆ 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 294 of file UserOptionsManager.php.

◆ 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 145 of file UserOptionsManager.php.

◆ 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 270 of file UserOptionsManager.php.

◆ 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 482 of file UserOptionsManager.php.

◆ 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 207 of file UserOptionsManager.php.

References 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 380 of file UserOptionsManager.php.

References $res, DB_MASTER, MediaWiki\User\UserIdentity\getId(), MediaWiki\User\UserIdentity\isRegistered(), 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 180 of file UserOptionsManager.php.

Member Data Documentation

◆ $defaultOptionsLookup

DefaultOptionsLookup MediaWiki\User\UserOptionsManager::$defaultOptionsLookup
private

◆ $hookRunner

HookRunner MediaWiki\User\UserOptionsManager::$hookRunner
private

Definition at line 72 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 66 of file UserOptionsManager.php.

◆ $originalOptionsCache

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

Cached original user options fetched from database.

Definition at line 69 of file UserOptionsManager.php.

◆ $queryFlagsUsedForCaching

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

Query flags used to retrieve options from database.

Definition at line 75 of file UserOptionsManager.php.

◆ $serviceOptions

ServiceOptions MediaWiki\User\UserOptionsManager::$serviceOptions
private

Definition at line 51 of file UserOptionsManager.php.

◆ CONSTRUCTOR_OPTIONS

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

Definition at line 46 of file UserOptionsManager.php.


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