MediaWiki REL1_33
FormOptions Class Reference

Helper class to keep track of options when mixing links and form elements. More...

Inheritance diagram for FormOptions:
Collaboration diagram for FormOptions:

Public Member Functions

ArrayAccess functions

These functions implement the ArrayAccess PHP interface.

See also
https://secure.php.net/manual/en/class.arrayaccess.php
 offsetExists ( $name)
 Whether the option exists.
 
 offsetGet ( $name)
 Retrieve an option value.
 
 offsetSet ( $name, $value)
 Set an option to given value.
 
 offsetUnset ( $name)
 Delete the option.
 

Type constants

Used internally to map an option value to a WebRequest accessor

const AUTO = -1
 Mark value for automatic detection (for simple data types only)
 
const STRING = 0
 String type, maps guessType() to WebRequest::getText()
 
const INT = 1
 Integer type, maps guessType() to WebRequest::getInt()
 
const FLOAT = 4
 Float type, maps guessType() to WebRequest::getFloat()
 
const BOOL = 2
 Boolean type, maps guessType() to WebRequest::getBool()
 
const INTNULL = 3
 Integer type or null, maps to WebRequest::getIntOrNull() This is useful for the namespace selector.
 
const ARR = 5
 Array type, maps guessType() to WebRequest::getArray()
 
 $options = []
 Map of known option names to information about them.
 
 add ( $name, $default, $type=self::AUTO)
 Add an option to be handled by this FormOptions instance.
 
 delete ( $name)
 Remove an option being handled by this FormOptions instance.
 
 validateName ( $name, $strict=false)
 Verify that the given option name exists.
 
 setValue ( $name, $value, $force=false)
 Use to set the value of an option.
 
 getValue ( $name)
 Get the value for the given option name.
 
 reset ( $name)
 Delete the option value.
 
 consumeValue ( $name)
 Get the value of given option and mark it as 'consumed'.
 
 consumeValues ( $names)
 Get the values of given options and mark them as 'consumed'.
 
 validateIntBounds ( $name, $min, $max)
 
 validateBounds ( $name, $min, $max)
 Constrain a numeric value for a given option to a given range.
 
 getUnconsumedValues ( $all=false)
 Get all remaining values which have not been consumed by consumeValue() or consumeValues().
 
 getChangedValues ()
 Return options modified as an array ( name => value )
 
 getAllValues ()
 Format options to an array ( name => value )
 
 fetchValuesFromRequest (WebRequest $r, $optionKeys=null)
 Fetch values for all options (or selected options) from the given WebRequest, making them available for accessing with getValue() or consumeValue() etc.
 
static guessType ( $data)
 Used to find out which type the data is.
 
 getValueReal ( $option)
 Return current option value, based on a structure taken from $options.
 

Detailed Description

Helper class to keep track of options when mixing links and form elements.

Todo:
This badly needs some examples and tests :) The usage in SpecialRecentchanges class is a good ersatz in the meantime.

Definition at line 35 of file FormOptions.php.

Member Function Documentation

◆ add()

FormOptions::add (   $name,
  $default,
  $type = self::AUTO 
)

Add an option to be handled by this FormOptions instance.

Parameters
string$nameRequest parameter name
mixed$defaultDefault value when the request parameter is not present
int$typeOne of the type constants (optional, defaults to AUTO)

Definition at line 81 of file FormOptions.php.

References $name, $type, guessType(), and options().

Referenced by ChangesListBooleanFilterGroup\addOptions(), ChangesListStringOptionsFilterGroup\addOptions(), SpecialLog\execute(), SpecialNewFiles\execute(), SpecialWhatLinksHere\execute(), SpecialNewpages\setup(), and FormOptionsTest\setUp().

◆ consumeValue()

FormOptions::consumeValue (   $name)

Get the value of given option and mark it as 'consumed'.

Consumed options are not returned by getUnconsumedValues().

See also
consumeValues()
Exceptions
MWExceptionIf the option does not exist
Parameters
string$nameOption name
Returns
mixed Value, or the default value if it is null

Definition at line 219 of file FormOptions.php.

References $name, getValueReal(), options(), and validateName().

◆ consumeValues()

FormOptions::consumeValues (   $names)

Get the values of given options and mark them as 'consumed'.

Consumed options are not returned by getUnconsumedValues().

See also
consumeValue()
Exceptions
MWExceptionIf any option does not exist
Parameters
array$namesArray of option names as strings
Returns
array Array of option values, or the default values if they are null

Definition at line 235 of file FormOptions.php.

References $name, $out, as, getValueReal(), options(), and validateName().

◆ delete()

FormOptions::delete (   $name)

Remove an option being handled by this FormOptions instance.

This is the inverse of add().

Parameters
string$nameRequest parameter name

Definition at line 101 of file FormOptions.php.

References $name, options(), and validateName().

◆ fetchValuesFromRequest()

FormOptions::fetchValuesFromRequest ( WebRequest  $r,
  $optionKeys = null 
)

Fetch values for all options (or selected options) from the given WebRequest, making them available for accessing with getValue() or consumeValue() etc.

Parameters
WebRequest$rThe request to fetch values from
array | null$optionKeysWhich options to fetch the values for (default: all of them). Note that passing an empty array will also result in values for all keys being fetched.
Exceptions
MWExceptionIf the type of any option is invalid

Definition at line 344 of file FormOptions.php.

References $name, $type, $value, ARR, as, BOOL, FLOAT, WebRequest\getArray(), WebRequest\getBool(), WebRequest\getFloat(), WebRequest\getInt(), WebRequest\getIntOrNull(), WebRequest\getText(), INT, INTNULL, null, options(), and STRING.

Referenced by SpecialNewFiles\execute(), SpecialWhatLinksHere\execute(), and SpecialNewpages\setup().

◆ getAllValues()

FormOptions::getAllValues ( )

Format options to an array ( name => value )

Returns
array

Definition at line 322 of file FormOptions.php.

References $data, $name, as, getValueReal(), and options().

◆ getChangedValues()

FormOptions::getChangedValues ( )

Return options modified as an array ( name => value )

Returns
array

Definition at line 306 of file FormOptions.php.

References $data, $name, as, and options().

Referenced by SpecialWatchlist\setTopText(), and ChangesListSpecialPage\validateOptions().

◆ getUnconsumedValues()

FormOptions::getUnconsumedValues (   $all = false)

Get all remaining values which have not been consumed by consumeValue() or consumeValues().

Parameters
bool$allWhether to include unchanged options (default: false)
Returns
array

Definition at line 288 of file FormOptions.php.

References $data, $name, as, getValueReal(), and options().

◆ getValue()

FormOptions::getValue (   $name)

Get the value for the given option name.

Uses getValueReal() internally.

Parameters
string$nameOption name
Returns
mixed

Definition at line 180 of file FormOptions.php.

References $name, getValueReal(), options(), and validateName().

Referenced by NewFilesPager\__construct(), ActiveUsersPager\__construct(), AllMessagesTablePager\__construct(), SpecialNewFiles\execute(), SpecialWhatLinksHere\execute(), NewFilesPager\getQueryInfo(), offsetGet(), and SpecialLog\show().

◆ getValueReal()

FormOptions::getValueReal (   $option)
protected

Return current option value, based on a structure taken from $options.

Parameters
array$optionArray structure describing the option
Returns
mixed Value, or the default value if it is null

Definition at line 192 of file FormOptions.php.

Referenced by consumeValue(), consumeValues(), getAllValues(), getUnconsumedValues(), getValue(), and validateBounds().

◆ guessType()

static FormOptions::guessType (   $data)
static

Used to find out which type the data is.

All types are defined in the 'Type constants' section of this class.

Detection of the INTNULL type is not supported; INT will be assumed if the data is an integer, MWException will be thrown if it's null.

Parameters
mixed$dataValue to guess the type for
Exceptions
MWExceptionIf unable to guess the type
Returns
int Type constant

Definition at line 117 of file FormOptions.php.

References $data, ARR, BOOL, FLOAT, INT, and STRING.

Referenced by add(), FormOptionsTest\guess(), and AbstractChangesListSpecialPageTestCase\testParseParameters().

◆ offsetExists()

FormOptions::offsetExists (   $name)

Whether the option exists.

Parameters
string$name
Returns
bool

Definition at line 392 of file FormOptions.php.

References $name, and options().

◆ offsetGet()

FormOptions::offsetGet (   $name)

Retrieve an option value.

Parameters
string$name
Returns
mixed

Definition at line 401 of file FormOptions.php.

References $name, and getValue().

◆ offsetSet()

FormOptions::offsetSet (   $name,
  $value 
)

Set an option to given value.

Parameters
string$name
mixed$value

Definition at line 410 of file FormOptions.php.

References $name, $value, and setValue().

◆ offsetUnset()

FormOptions::offsetUnset (   $name)

Delete the option.

Parameters
string$name

Definition at line 418 of file FormOptions.php.

References $name.

◆ reset()

FormOptions::reset (   $name)

Delete the option value.

This will make future calls to getValue() return the default value.

Parameters
string$nameOption name

Definition at line 205 of file FormOptions.php.

References $name, options(), and validateName().

Referenced by ChangesListSpecialPage\buildQuery(), ChangesListSpecialPage\fixBackwardsCompatibilityOptions(), and ChangesListSpecialPage\replaceOldOptions().

◆ setValue()

FormOptions::setValue (   $name,
  $value,
  $force = false 
)

Use to set the value of an option.

Parameters
string$nameOption name
mixed$valueValue for the option
bool$forceWhether to set the value when it is equivalent to the default value for this option (default false).

Definition at line 163 of file FormOptions.php.

References $name, $value, options(), and validateName().

Referenced by SpecialNewFiles\execute(), SpecialWhatLinksHere\execute(), offsetSet(), SpecialLog\parseParams(), and validateBounds().

◆ validateBounds()

FormOptions::validateBounds (   $name,
  $min,
  $max 
)

Constrain a numeric value for a given option to a given range.

The value will be altered to fit in the range.

Since
1.23
Parameters
string$nameOption name
int | float$minMinimum value
int | float$maxMaximum value
Exceptions
MWExceptionIf option is not of type INT

Definition at line 268 of file FormOptions.php.

References $name, $type, $value, getValueReal(), options(), setValue(), and validateName().

Referenced by validateIntBounds(), and ChangesListSpecialPage\validateOptions().

◆ validateIntBounds()

FormOptions::validateIntBounds (   $name,
  $min,
  $max 
)
See also
validateBounds()
Parameters
string$name
int$min
int$max

Definition at line 253 of file FormOptions.php.

References $name, and validateBounds().

Referenced by SpecialNewFiles\execute(), SpecialWhatLinksHere\execute(), SpecialNewpages\setup(), and ChangesListSpecialPage\validateOptions().

◆ validateName()

FormOptions::validateName (   $name,
  $strict = false 
)

Verify that the given option name exists.

Parameters
string$nameOption name
bool$strictThrow an exception when the option doesn't exist instead of returning false
Exceptions
MWException
Returns
bool True if the option exists, false otherwise

Definition at line 143 of file FormOptions.php.

References $name, and options().

Referenced by consumeValue(), consumeValues(), delete(), getValue(), reset(), setValue(), and validateBounds().

Member Data Documentation

◆ $options

FormOptions::$options = []
protected

Map of known option names to information about them.

Each value is an array with the following keys:

  • 'default' - the default value as passed to add()
  • 'value' - current value, start with null, can be set by various functions
  • 'consumed' - true/false, whether the option was consumed using consumeValue() or consumeValues()
  • 'type' - one of the type constants (but never AUTO)

Definition at line 70 of file FormOptions.php.

◆ ARR

const FormOptions::ARR = 5

Array type, maps guessType() to WebRequest::getArray()

Since
1.29

Definition at line 57 of file FormOptions.php.

Referenced by FormOptionsTest\assertGuessArray(), fetchValuesFromRequest(), and guessType().

◆ AUTO

const FormOptions::AUTO = -1

Mark value for automatic detection (for simple data types only)

Definition at line 41 of file FormOptions.php.

◆ BOOL

const FormOptions::BOOL = 2

Boolean type, maps guessType() to WebRequest::getBool()

Definition at line 50 of file FormOptions.php.

Referenced by FormOptionsTest\assertGuessBoolean(), SpecialActiveUsers\execute(), fetchValuesFromRequest(), and guessType().

◆ FLOAT

const FormOptions::FLOAT = 4

Float type, maps guessType() to WebRequest::getFloat()

Since
1.23

Definition at line 48 of file FormOptions.php.

Referenced by FormOptionsTest\assertGuessFloat(), fetchValuesFromRequest(), ChangesListSpecialPage\getDefaultOptions(), and guessType().

◆ INT

const FormOptions::INT = 1

◆ INTNULL

const FormOptions::INTNULL = 3

Integer type or null, maps to WebRequest::getIntOrNull() This is useful for the namespace selector.

Definition at line 54 of file FormOptions.php.

Referenced by SpecialLog\execute(), SpecialWhatLinksHere\execute(), fetchValuesFromRequest(), and FormOptionsTest\setUp().

◆ STRING

const FormOptions::STRING = 0

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