MediaWiki master
ApiErrorFormatter Class Reference

Formats errors and warnings for the API, and add them to the associated ApiResult. More...

Inherited by ApiErrorFormatter_BackCompat.

Collaboration diagram for ApiErrorFormatter:

Public Member Functions

 __construct (ApiResult $result, Language $lang, $format, $useDB=false)
 
 addError ( $modulePath, $msg, $code=null, $data=null)
 Add an error to the result.
 
 addMessagesFromStatus ( $modulePath, StatusValue $status, $types=[ 'warning', 'error'], array $filter=[])
 Add warnings and errors from a StatusValue object to the result.
 
 addWarning ( $modulePath, $msg, $code=null, $data=null)
 Add a warning to the result.
 
 arrayFromStatus (StatusValue $status, $type='error', $format=null)
 Format messages from a StatusValue as an array.
 
 formatException (Throwable $exception, array $options=[])
 Format a throwable as an array.
 
 formatMessage ( $msg, $format=null)
 Format a message as an array.
 
 getContextTitle ()
 Get the page used for rendering error messages, e.g.
 
 getFormat ()
 Fetch the format for this formatter.
 
 getLanguage ()
 Fetch the Language for this formatter.
 
 getMessageFromException (Throwable $exception, array $options=[])
 Get an ApiMessage from a throwable.
 
 newWithFormat ( $format)
 Return a formatter like this one but with a different format.
 
 setContextTitle (PageReference $title)
 Set the page used for rendering error messages, e.g.
 

Static Public Member Functions

static isValidApiCode ( $code)
 Test whether a code is a valid API error code.
 
static stripMarkup ( $text)
 Turn wikitext into something resembling plaintext.
 

Protected Member Functions

 addWarningOrError ( $tag, $modulePath, $msg)
 Actually add the warning or error to the result.
 
 formatMessageInternal ( $msg, $format)
 Format a message as an array.
 
 getDummyTitle ()
 Fetch a dummy title to set on Messages.
 

Protected Attributes

 $format = 'none'
 
Language $lang
 
ApiResult $result
 
 $useDB = false
 

Detailed Description

Formats errors and warnings for the API, and add them to the associated ApiResult.

Since
1.25

Definition at line 36 of file ApiErrorFormatter.php.

Constructor & Destructor Documentation

◆ __construct()

ApiErrorFormatter::__construct ( ApiResult  $result,
Language  $lang,
  $format,
  $useDB = false 
)
Parameters
ApiResult$resultInto which data will be added
Language$langUsed for i18n
string$format
  • plaintext: Error message as something vaguely like plaintext (it's basically wikitext with HTML tags stripped and entities decoded)
  • wikitext: Error message as wikitext
  • html: Error message as HTML
  • raw: Raw message key and parameters, no human-readable text
  • none: Code and data only, no human-readable text
bool$useDBWhether to use local translations for errors and warnings.

Definition at line 62 of file ApiErrorFormatter.php.

References $format, $lang, $result, and $useDB.

Member Function Documentation

◆ addError()

ApiErrorFormatter::addError (   $modulePath,
  $msg,
  $code = null,
  $data = null 
)

Add an error to the result.

Parameters
string | null$modulePath
Message | array | string$msgWarning message. See ApiMessage::create().
string | null$codeSee ApiMessage::create().
array | null$dataSee ApiMessage::create().

Definition at line 172 of file ApiErrorFormatter.php.

◆ addMessagesFromStatus()

ApiErrorFormatter::addMessagesFromStatus (   $modulePath,
StatusValue  $status,
  $types = [ 'warning', 'error' ],
array  $filter = [] 
)

Add warnings and errors from a StatusValue object to the result.

Parameters
string | null$modulePath
StatusValue$status
string[] | string$types'warning' and/or 'error'
string[]$filterMessages to filter out (since 1.33)

Definition at line 187 of file ApiErrorFormatter.php.

References StatusValue\getErrors(), and StatusValue\isGood().

Referenced by arrayFromStatus().

◆ addWarning()

ApiErrorFormatter::addWarning (   $modulePath,
  $msg,
  $code = null,
  $data = null 
)

Add a warning to the result.

Parameters
string | null$modulePath
Message | array | string$msgWarning message. See ApiMessage::create().
string | null$codeSee ApiMessage::create().
array | null$dataSee ApiMessage::create().

Definition at line 157 of file ApiErrorFormatter.php.

◆ addWarningOrError()

ApiErrorFormatter::addWarningOrError (   $tag,
  $modulePath,
  $msg 
)
protected

Actually add the warning or error to the result.

Parameters
string$tag'warning' or 'error'
string | null$modulePath
ApiMessage | ApiRawMessage$msg

Reimplemented in ApiErrorFormatter_BackCompat.

Definition at line 401 of file ApiErrorFormatter.php.

References $path.

◆ arrayFromStatus()

ApiErrorFormatter::arrayFromStatus ( StatusValue  $status,
  $type = 'error',
  $format = null 
)

Format messages from a StatusValue as an array.

Parameters
StatusValue$status
string$type'warning' or 'error'
string | null$format
Returns
array

Reimplemented in ApiErrorFormatter_BackCompat.

Definition at line 295 of file ApiErrorFormatter.php.

References addMessagesFromStatus(), StatusValue\getErrors(), and StatusValue\isGood().

◆ formatException()

ApiErrorFormatter::formatException ( Throwable  $exception,
array  $options = [] 
)

Format a throwable as an array.

Since
1.29
Parameters
Throwable$exception
array$optionsSee self::getMessageFromException(), plus
  • format: (string) Format override
Returns
array

Reimplemented in ApiErrorFormatter_BackCompat.

Definition at line 266 of file ApiErrorFormatter.php.

◆ formatMessage()

ApiErrorFormatter::formatMessage (   $msg,
  $format = null 
)

Format a message as an array.

Parameters
Message | array | string$msgMessage. See ApiMessage::create().
string | null$format
Returns
array

Definition at line 280 of file ApiErrorFormatter.php.

◆ formatMessageInternal()

ApiErrorFormatter::formatMessageInternal (   $msg,
  $format 
)
protected

Format a message as an array.

Since
1.29
Parameters
ApiMessage | ApiRawMessage$msg
string | null$format
Returns
array

Reimplemented in ApiErrorFormatter_BackCompat.

Definition at line 355 of file ApiErrorFormatter.php.

◆ getContextTitle()

ApiErrorFormatter::getContextTitle ( )

Get the page used for rendering error messages, e.g.

for wikitext magic words like {{PAGENAME}}

Since
1.37
Returns
PageReference

Definition at line 137 of file ApiErrorFormatter.php.

◆ getDummyTitle()

ApiErrorFormatter::getDummyTitle ( )
protected

Fetch a dummy title to set on Messages.

Returns
PageReference

Definition at line 122 of file ApiErrorFormatter.php.

References NS_SPECIAL.

◆ getFormat()

ApiErrorFormatter::getFormat ( )

Fetch the format for this formatter.

Since
1.32
Returns
string

Reimplemented in ApiErrorFormatter_BackCompat.

Definition at line 105 of file ApiErrorFormatter.php.

References $format.

◆ getLanguage()

ApiErrorFormatter::getLanguage ( )

Fetch the Language for this formatter.

Since
1.29
Returns
Language

Definition at line 114 of file ApiErrorFormatter.php.

References $lang.

Referenced by ApiErrorFormatter_BackCompat\__construct().

◆ getMessageFromException()

ApiErrorFormatter::getMessageFromException ( Throwable  $exception,
array  $options = [] 
)

Get an ApiMessage from a throwable.

Since
1.29
Parameters
Throwable$exception
array$options
  • wrap: (string|array|MessageSpecifier) Used to wrap the throwable's message if it's not an ILocalizedException. The throwable's message will be added as the final parameter.
  • code: (string) Default code
  • data: (array) Default extra data
Returns
IApiMessage

Definition at line 229 of file ApiErrorFormatter.php.

References $params, and wfEscapeWikiText().

◆ isValidApiCode()

static ApiErrorFormatter::isValidApiCode (   $code)
static

Test whether a code is a valid API error code.

A valid code contains only ASCII letters, numbers, underscore, and hyphen and is not the empty string.

For backwards compatibility, any code beginning 'internal_api_error_' is also allowed.

Parameters
string$code
Returns
bool

Definition at line 81 of file ApiErrorFormatter.php.

Referenced by setApiCode(), and ApiMain\substituteResultWithError().

◆ newWithFormat()

ApiErrorFormatter::newWithFormat (   $format)

Return a formatter like this one but with a different format.

Since
1.32
Parameters
string$formatNew format.
Returns
ApiErrorFormatter

Definition at line 96 of file ApiErrorFormatter.php.

References $format, $lang, $result, and $useDB.

◆ setContextTitle()

ApiErrorFormatter::setContextTitle ( PageReference  $title)

Set the page used for rendering error messages, e.g.

for wikitext magic words like {{PAGENAME}}

Since
1.37
Parameters
PageReference$title

Definition at line 146 of file ApiErrorFormatter.php.

◆ stripMarkup()

static ApiErrorFormatter::stripMarkup (   $text)
static

Turn wikitext into something resembling plaintext.

Since
1.29
Parameters
string$text
Returns
string

Definition at line 319 of file ApiErrorFormatter.php.

Referenced by ApiUsageException\__construct(), ApiUsageException\__toString(), and ApiErrorFormatter_BackCompat\addWarningOrError().

Member Data Documentation

◆ $format

ApiErrorFormatter::$format = 'none'
protected

Definition at line 48 of file ApiErrorFormatter.php.

Referenced by __construct(), getFormat(), and newWithFormat().

◆ $lang

Language ApiErrorFormatter::$lang
protected

Definition at line 44 of file ApiErrorFormatter.php.

Referenced by __construct(), getLanguage(), and newWithFormat().

◆ $result

◆ $useDB

ApiErrorFormatter::$useDB = false
protected

Definition at line 47 of file ApiErrorFormatter.php.

Referenced by __construct(), and newWithFormat().


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