MediaWiki  master
Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef Class Reference

Type definition for namespace types. More...

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

Public Member Functions

 __construct (Callbacks $callbacks, NamespaceInfo $nsInfo)
 
 checkSettings (string $name, $settings, array $options, array $ret)
 Validate a parameter settings array. More...
 
 getEnumValues ( $name, array $settings, array $options)
 Get the values for enum-like parameters. More...
 
 getParamInfo ( $name, array $settings, array $options)
 Describe parameter settings in a machine-readable format. More...
 
 normalizeSettings (array $settings)
 Normalize a settings array Stable to override. More...
 
 validate ( $name, $value, array $settings, array $options)
 Validate the value. More...
 
- Public Member Functions inherited from Wikimedia\ParamValidator\TypeDef\EnumDef
 getHelpInfo ( $name, array $settings, array $options)
 Describe parameter settings in human-readable format. More...
 
 stringifyValue ( $name, $value, array $settings, array $options)
 Convert a value to a string representation. More...
 
- Public Member Functions inherited from Wikimedia\ParamValidator\TypeDef
 __construct (Callbacks $callbacks)
 Stable to call. More...
 
 getValue ( $name, array $settings, array $options)
 Get the value from the request Stable to override. More...
 

Public Attributes

const PARAM_EXTRA_NAMESPACES = 'param-extra-namespaces'
 (int[]) Additional namespace IDs to recognize. More...
 
- Public Attributes inherited from Wikimedia\ParamValidator\TypeDef\EnumDef
const PARAM_DEPRECATED_VALUES = 'param-deprecated-values'
 (array) Associative array of deprecated values. More...
 

Private Attributes

NamespaceInfo $nsInfo
 

Additional Inherited Members

- Protected Member Functions inherited from Wikimedia\ParamValidator\TypeDef\EnumDef
 getEnumValuesForHelp ( $name, array $settings, array $options)
 Return enum values formatted for the help message. More...
 
 sortEnumValues (string $name, array $values, array $settings, array $options)
 Sort enum values for help/param info output. 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 inherited from Wikimedia\ParamValidator\TypeDef
Callbacks $callbacks
 

Detailed Description

Type definition for namespace types.

A namespace type is an enum type that accepts MediaWiki namespace IDs.

Since
1.35

Definition at line 18 of file NamespaceDef.php.

Constructor & Destructor Documentation

◆ __construct()

Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef::__construct ( Callbacks  $callbacks,
NamespaceInfo  $nsInfo 
)

Member Function Documentation

◆ checkSettings()

Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef::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.

Reimplemented from Wikimedia\ParamValidator\TypeDef\EnumDef.

Definition at line 62 of file NamespaceDef.php.

References $type, Wikimedia\ParamValidator\ParamValidator\PARAM_ALL, Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef\PARAM_EXTRA_NAMESPACES, and Wikimedia\ParamValidator\ParamValidator\PARAM_ISMULTI.

◆ getEnumValues()

Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef::getEnumValues (   $name,
array  $settings,
array  $options 
)

Get the values for enum-like parameters.

This is primarily intended for documentation and implementation of PARAM_ALL; it is the responsibility of the TypeDef to ensure that validate() accepts the values returned here. Stable to override

Parameters
string$nameParameter name being validated.
array$settingsParameter settings array.
array$optionsOptions array.
Returns
array|null All possible enumerated values, or null if this is not an enumeration.

Reimplemented from Wikimedia\ParamValidator\TypeDef\EnumDef.

Definition at line 44 of file NamespaceDef.php.

References Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef\PARAM_EXTRA_NAMESPACES.

◆ getParamInfo()

Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef::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

Reimplemented from Wikimedia\ParamValidator\TypeDef\EnumDef.

Definition at line 95 of file NamespaceDef.php.

References Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef\PARAM_EXTRA_NAMESPACES, and ApiResult\setIndexedTagName().

◆ normalizeSettings()

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

Normalize a settings array Stable to override.

Parameters
array$settings
Returns
array

Reimplemented from Wikimedia\ParamValidator\TypeDef.

Definition at line 54 of file NamespaceDef.php.

References Wikimedia\ParamValidator\ParamValidator\PARAM_ALL, and Wikimedia\ParamValidator\ParamValidator\PARAM_ISMULTI.

◆ validate()

Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef::validate (   $name,
  $value,
array  $settings,
array  $options 
)

Validate the value.

When ParamValidator is processing a multi-valued parameter, this will be called once for each of the supplied values. Which may mean zero calls.

When getValue() returned null, this will not be called.

Parameters
string$nameParameter name being validated.
mixed$valueValue to validate, from getValue().
array$settingsParameter settings array.
array$optionsOptions array. Note the following values that may be set by ParamValidator:
  • is-default: (bool) If present and true, the value was taken from PARAM_DEFAULT rather that being supplied by the client.
  • values-list: (string[]) If defined, values of a multi-valued parameter are being processed (and this array holds the full set of values).
Returns
mixed Validated value
Exceptions
ValidationExceptionif the value is invalid

Reimplemented from Wikimedia\ParamValidator\TypeDef\EnumDef.

Definition at line 35 of file NamespaceDef.php.

Member Data Documentation

◆ $nsInfo

NamespaceInfo Wikimedia\ParamValidator\ParamValidator::TypeDef\NamespaceDef::$nsInfo
private

◆ PARAM_EXTRA_NAMESPACES

const Wikimedia\ParamValidator\ParamValidator::TypeDef\NamespaceDef::PARAM_EXTRA_NAMESPACES = 'param-extra-namespaces'

(int[]) Additional namespace IDs to recognize.

Generally this will be used to include NS_SPECIAL and/or NS_MEDIA.

Definition at line 25 of file NamespaceDef.php.

Referenced by Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef\checkSettings(), Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef\getEnumValues(), and Wikimedia\ParamValidator\ParamValidator\TypeDef\NamespaceDef\getParamInfo().


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