MediaWiki  master
Wikimedia\ParamValidator\TypeDef\ExpiryDef Class Reference

Type definition for expiry timestamps. More...

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

Public Member Functions

 checkSettings (string $name, $settings, array $options, array $ret)
 Validate a parameter settings array. More...
 
 getHelpInfo ( $name, array $settings, array $options)
 Describe parameter settings in human-readable format. More...
 
 validate ( $name, $value, array $settings, array $options)
 Validate the value. More...
 
- Public Member Functions inherited from Wikimedia\ParamValidator\TypeDef
 __construct (Callbacks $callbacks)
 
 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...
 
 getValue ( $name, array $settings, array $options)
 Get the value from the request. More...
 
 normalizeSettings (array $settings)
 Normalize a settings array. More...
 
 stringifyValue ( $name, $value, array $settings, array $options)
 Convert a value to a string representation. More...
 

Static Public Member Functions

static normalizeExpiry (?string $expiry=null, ?int $style=null)
 Normalize a user-inputted expiry in ConvertibleTimestamp. More...
 
static normalizeUsingMaxExpiry (?string $expiry, ?string $maxExpiryDuration, ?int $style)
 Returns a normalized expiry or the max expiry if the given expiry exceeds it. More...
 

Public Attributes

const PARAM_MAX = 'param-max'
 (int|float) Maximum non-infinity duration. More...
 
const PARAM_USE_MAX = 'param-use-max'
 (bool) If truthy, the value given for the PARAM_MAX setting is used if the provided expiry exceeds it, and the 'badexpiry-duration' message is shown as a warning. More...
 

Static Private Member Functions

static expiryExceedsMax (?string $expiry, ?string $max=null)
 Given an expiry, test if the normalized value exceeds the given maximum. More...
 

Additional Inherited Members

- 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 expiry timestamps.

Since
1.35

Definition at line 17 of file ExpiryDef.php.

Member Function Documentation

◆ checkSettings()

Wikimedia\ParamValidator\TypeDef\ExpiryDef::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()
Stability: 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.

Definition at line 135 of file ExpiryDef.php.

References Wikimedia\ParamValidator\TypeDef\ExpiryDef\PARAM_MAX, and Wikimedia\ParamValidator\TypeDef\ExpiryDef\PARAM_USE_MAX.

◆ expiryExceedsMax()

static Wikimedia\ParamValidator\TypeDef\ExpiryDef::expiryExceedsMax ( ?string  $expiry,
?string  $max = null 
)
staticprivate

Given an expiry, test if the normalized value exceeds the given maximum.

Parameters
string | null$expiry
string | null$maxRelative maximum duration acceptable by strtotime() (i.e. '6 months')
Returns
bool

Definition at line 151 of file ExpiryDef.php.

References Wikimedia\ParamValidator\TypeDef\ExpiryDef\normalizeExpiry().

◆ getHelpInfo()

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

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

Reimplemented from Wikimedia\ParamValidator\TypeDef.

Definition at line 65 of file ExpiryDef.php.

References Wikimedia\Message\MessageValue\new(), Wikimedia\ParamValidator\ParamValidator\PARAM_ISMULTI, and Wikimedia\ParamValidator\ParamValidator\PARAM_TYPE.

◆ normalizeExpiry()

static Wikimedia\ParamValidator\TypeDef\ExpiryDef::normalizeExpiry ( ?string  $expiry = null,
?int  $style = null 
)
static

Normalize a user-inputted expiry in ConvertibleTimestamp.

Parameters
string | null$expiry
int | null$stylenull or in a format acceptable to ConvertibleTimestamp (TS_* constants)
Returns
ConvertibleTimestamp|string|null Timestamp as ConvertibleTimestamp if $style is null, a string timestamp in $style is not null, 'infinity' if $expiry is one of the self::INFINITY_VALS, or null if $expiry is null.
Exceptions
InvalidArgumentExceptionif $expiry is invalid

Definition at line 92 of file ExpiryDef.php.

Referenced by Wikimedia\ParamValidator\TypeDef\ExpiryDef\expiryExceedsMax(), Wikimedia\ParamValidator\TypeDef\ExpiryDef\normalizeUsingMaxExpiry(), MediaWiki\Watchlist\WatchlistManager\setWatch(), and Wikimedia\ParamValidator\TypeDef\ExpiryDef\validate().

◆ normalizeUsingMaxExpiry()

static Wikimedia\ParamValidator\TypeDef\ExpiryDef::normalizeUsingMaxExpiry ( ?string  $expiry,
?string  $maxExpiryDuration,
?int  $style 
)
static

Returns a normalized expiry or the max expiry if the given expiry exceeds it.

Parameters
string | null$expiry
string | null$maxExpiryDuration
int | null$stylenull or in a format acceptable to ConvertibleTimestamp (TS_* constants)
Returns
ConvertibleTimestamp|string|null Timestamp as ConvertibleTimestamp if $style is null, a string timestamp in $style is not null, 'infinity' if $expiry is one of the self::INFINITY_VALS, or null if $expiry is null.

Definition at line 128 of file ExpiryDef.php.

References Wikimedia\ParamValidator\TypeDef\ExpiryDef\normalizeExpiry().

◆ validate()

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

Definition at line 35 of file ExpiryDef.php.

References Wikimedia\ParamValidator\TypeDef\failure(), Wikimedia\Message\DataMessageValue\new(), Wikimedia\ParamValidator\TypeDef\ExpiryDef\normalizeExpiry(), and Wikimedia\ParamValidator\TypeDef\ExpiryDef\PARAM_MAX.

Member Data Documentation

◆ PARAM_MAX

const Wikimedia\ParamValidator\TypeDef\ExpiryDef::PARAM_MAX = 'param-max'

(int|float) Maximum non-infinity duration.

Definition at line 33 of file ExpiryDef.php.

Referenced by Wikimedia\ParamValidator\TypeDef\ExpiryDef\checkSettings(), and Wikimedia\ParamValidator\TypeDef\ExpiryDef\validate().

◆ PARAM_USE_MAX

const Wikimedia\ParamValidator\TypeDef\ExpiryDef::PARAM_USE_MAX = 'param-use-max'

(bool) If truthy, the value given for the PARAM_MAX setting is used if the provided expiry exceeds it, and the 'badexpiry-duration' message is shown as a warning.

If false, 'badexpiry-duration' is shown and is fatal.

Definition at line 28 of file ExpiryDef.php.

Referenced by Wikimedia\ParamValidator\TypeDef\ExpiryDef\checkSettings().


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