MediaWiki  master
Wikimedia\ParamValidator\TypeDef\NumericDef Class Reference

Type definition base class for numeric types. More...

Inheritance diagram for Wikimedia\ParamValidator\TypeDef\NumericDef:
Collaboration diagram for Wikimedia\ParamValidator\TypeDef\NumericDef:

Public Member Functions

 checkSettings (string $name, $settings, array $options, array $ret)
 Validate a parameter settings array.This is intended for validation of parameter settings during unit or integration testing, and should implement strict checks.The rest of the code should generally be more permissive.
See also
ParamValidator::checkSettings() Stable to override
Parameters
string$nameParameter name
array | mixed$settingsDefault value or an array of settings using PARAM_* constants.
array$optionsOptions array, passed through to the TypeDef and Callbacks.
array$ret
  • 'issues': (string[]) Errors detected in $settings, as English text. If the settings are valid, this will be the empty array. Keys on input are ParamValidator constants, allowing the typedef to easily override core validation; this need not be preserved when returned.
  • 'allowedKeys': (string[]) ParamValidator keys that are allowed in $settings.
  • 'messages': (MessageValue[]) Messages to be checked for existence.
Returns
array $ret, with any relevant changes.
Stable to override More...
 
 getHelpInfo ( $name, array $settings, array $options)
 Describe parameter settings in human-readable format.Keys in the returned array should generally correspond to PARAM constants.If relevant, a MessageValue describing the type itself should be returned with key ParamValidator::PARAM_TYPE.The default messages for other ParamValidator-defined PARAM constants may be suppressed by returning null as the value for those constants, or replaced by returning a replacement MessageValue. Normally, however, the default messages should not be changed.MessageValues describing any other constraints applied via PARAM constants specific to this class should also be returned. Stable to override
Parameters
string$nameParameter name being described.
array$settingsParameter settings array.
array$optionsOptions array.
Returns
(MessageValue|null)[]
Stable to override More...
 
 getParamInfo ( $name, array $settings, array $options)
 Describe parameter settings in a machine-readable format.Keys should be short strings using lowercase ASCII letters. Values should generally be values that could be encoded in JSON or the like.This is intended to handle PARAM constants specific to this class. It generally shouldn't handle constants defined on ParamValidator itself. Stable to override
Parameters
string$nameParameter name.
array$settingsParameter settings array.
array$optionsOptions array.
Returns
array
Stable to override More...
 
 normalizeSettings (array $settings)
 Normalize a settings array Stable to override.
Parameters
array$settings
Returns
array
Stable to override More...
 
- Public Member Functions inherited from Wikimedia\ParamValidator\TypeDef
 __construct (Callbacks $callbacks)
 Stable to call. More...
 
 getEnumValues ( $name, array $settings, array $options)
 Get the values for enum-like parameters. More...
 
 getValue ( $name, array $settings, array $options)
 Get the value from the request Stable to override. More...
 
 stringifyValue ( $name, $value, array $settings, array $options)
 Convert a value to a string representation. More...
 
 validate ( $name, $value, array $settings, array $options)
 Validate the value. More...
 

Public Attributes

const PARAM_IGNORE_RANGE = 'param-ignore-range'
 (bool) Whether to enforce the specified range. More...
 
const PARAM_MAX = 'param-max'
 (int|float) Maximum allowed value (normal limits) More...
 
const PARAM_MAX2 = 'param-max2'
 (int|float) Maximum allowed value (high limits) More...
 
const PARAM_MIN = 'param-min'
 (int|float) Minimum allowed value. More...
 

Protected Member Functions

 checkRange ( $value, $name, $origValue, array $settings, array $options)
 Check the range of a value. More...
 
- Protected Member Functions inherited from Wikimedia\ParamValidator\TypeDef
 failure ( $failure, $name, $value, array $settings, array $options, $fatal=true)
 Record a failure message. More...
 
 failureMessage ( $code, array $data=null, $suffix=null)
 Create a DataMessageValue representing a failure. More...
 

Protected Attributes

string $valueType = 'integer'
 PHP type (as from gettype()) of values this NumericDef handles. More...
 
- Protected Attributes inherited from Wikimedia\ParamValidator\TypeDef
Callbacks $callbacks
 

Detailed Description

Type definition base class for numeric types.

  • Failure codes:
    • 'outofrange': The value was outside of the allowed range. Data:
      • 'min': Minimum allowed, or null if there is no limit.
      • 'curmax': Current maximum allowed, or null if there is no limit.
      • 'max': Normal maximum allowed, or null if there is no limit.
      • 'highmax': High limits maximum allowed, or null if there is no limit.

Stable to extend

Since
1.35 @unstable

Definition at line 26 of file NumericDef.php.

Member Function Documentation

◆ checkRange()

Wikimedia\ParamValidator\TypeDef\NumericDef::checkRange (   $value,
  $name,
  $origValue,
array  $settings,
array  $options 
)
protected

Check the range of a value.

Parameters
int | float$valueValue to check.
string$nameParameter name being validated.
mixed$origValueOriginal value being validated.
array$settingsParameter settings array.
array$optionsOptions array.
Returns
int|float Validated value, may differ from $value if PARAM_IGNORE_RANGE was set.
Exceptions
ValidationExceptionif the value out of range, and PARAM_IGNORE_RANGE wasn't set.

Definition at line 64 of file NumericDef.php.

References Wikimedia\ParamValidator\TypeDef\failure(), Wikimedia\ParamValidator\TypeDef\failureMessage(), Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MAX, Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MAX2, and Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MIN.

Referenced by Wikimedia\ParamValidator\TypeDef\FloatDef\validate(), and Wikimedia\ParamValidator\TypeDef\IntegerDef\validate().

◆ checkSettings()

Wikimedia\ParamValidator\TypeDef\NumericDef::checkSettings ( string  $name,
  $settings,
array  $options,
array  $ret 
)

Validate a parameter settings array.This is intended for validation of parameter settings during unit or integration testing, and should implement strict checks.The rest of the code should generally be more permissive.

See also
ParamValidator::checkSettings() Stable to override
Parameters
string$nameParameter name
array | mixed$settingsDefault value or an array of settings using PARAM_* constants.
array$optionsOptions array, passed through to the TypeDef and Callbacks.
array$ret
  • 'issues': (string[]) Errors detected in $settings, as English text. If the settings are valid, this will be the empty array. Keys on input are ParamValidator constants, allowing the typedef to easily override core validation; this need not be preserved when returned.
  • 'allowedKeys': (string[]) ParamValidator keys that are allowed in $settings.
  • 'messages': (MessageValue[]) Messages to be checked for existence.
Returns
array $ret, with any relevant changes.
Stable to override

Reimplemented from Wikimedia\ParamValidator\TypeDef.

Reimplemented in Wikimedia\ParamValidator\TypeDef\LimitDef.

Definition at line 131 of file NumericDef.php.

References Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_IGNORE_RANGE, Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MAX, Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MAX2, and Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MIN.

◆ getHelpInfo()

Wikimedia\ParamValidator\TypeDef\NumericDef::getHelpInfo (   $name,
array  $settings,
array  $options 
)

Describe parameter settings in human-readable format.Keys in the returned array should generally correspond to PARAM constants.If relevant, a MessageValue describing the type itself should be returned with key ParamValidator::PARAM_TYPE.The default messages for other ParamValidator-defined PARAM constants may be suppressed by returning null as the value for those constants, or replaced by returning a replacement MessageValue. Normally, however, the default messages should not be changed.MessageValues describing any other constraints applied via PARAM constants specific to this class should also be returned. Stable to override

Parameters
string$nameParameter name being described.
array$settingsParameter settings array.
array$optionsOptions array.
Returns
(MessageValue|null)[]
Stable to override

Reimplemented from Wikimedia\ParamValidator\TypeDef.

Reimplemented in Wikimedia\ParamValidator\TypeDef\LimitDef, Wikimedia\ParamValidator\TypeDef\IntegerDef, and Wikimedia\ParamValidator\TypeDef\FloatDef.

Definition at line 192 of file NumericDef.php.

References Wikimedia\Message\MessageValue\new(), Wikimedia\Message\ParamType\NUM, Wikimedia\ParamValidator\ParamValidator\PARAM_ISMULTI, Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MAX, Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MAX2, and Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MIN.

◆ getParamInfo()

Wikimedia\ParamValidator\TypeDef\NumericDef::getParamInfo (   $name,
array  $settings,
array  $options 
)

Describe parameter settings in a machine-readable format.Keys should be short strings using lowercase ASCII letters. Values should generally be values that could be encoded in JSON or the like.This is intended to handle PARAM constants specific to this class. It generally shouldn't handle constants defined on ParamValidator itself. Stable to override

Parameters
string$nameParameter name.
array$settingsParameter settings array.
array$optionsOptions array.
Returns
array
Stable to override

Reimplemented from Wikimedia\ParamValidator\TypeDef.

Definition at line 175 of file NumericDef.php.

References Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MAX, Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MAX2, and Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MIN.

◆ normalizeSettings()

Wikimedia\ParamValidator\TypeDef\NumericDef::normalizeSettings ( array  $settings)

Normalize a settings array Stable to override.

Parameters
array$settings
Returns
array
Stable to override

Reimplemented from Wikimedia\ParamValidator\TypeDef.

Reimplemented in Wikimedia\ParamValidator\TypeDef\LimitDef.

Definition at line 113 of file NumericDef.php.

References Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MAX, and Wikimedia\ParamValidator\TypeDef\NumericDef\PARAM_MAX2.

Member Data Documentation

◆ $valueType

string Wikimedia\ParamValidator\TypeDef\NumericDef::$valueType = 'integer'
protected

PHP type (as from gettype()) of values this NumericDef handles.

Definition at line 51 of file NumericDef.php.

◆ PARAM_IGNORE_RANGE

const Wikimedia\ParamValidator\TypeDef\NumericDef::PARAM_IGNORE_RANGE = 'param-ignore-range'

(bool) Whether to enforce the specified range.

If set and truthy, the 'outofrange' failure is non-fatal.

Definition at line 33 of file NumericDef.php.

Referenced by Wikimedia\ParamValidator\TypeDef\NumericDef\checkSettings(), and MediaWiki\Api\Validator\ApiParamValidator\normalizeSettings().

◆ PARAM_MAX

◆ PARAM_MAX2

◆ PARAM_MIN

const Wikimedia\ParamValidator\TypeDef\NumericDef::PARAM_MIN = 'param-min'

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