MediaWiki REL1_34
MessageValue.php
Go to the documentation of this file.
1<?php
2
3namespace Wikimedia\Message;
4
16 private $key;
17
19 private $params;
20
26 public function __construct( $key, $params = [] ) {
27 $this->key = $key;
28 $this->params = [];
29 $this->params( ...$params );
30 }
31
37 public function getKey() {
38 return $this->key;
39 }
40
46 public function getParams() {
47 return $this->params;
48 }
49
56 public function params( ...$values ) {
57 foreach ( $values as $value ) {
58 if ( $value instanceof MessageParam ) {
59 $this->params[] = $value;
60 } else {
61 $this->params[] = new ScalarParam( ParamType::TEXT, $value );
62 }
63 }
64 return $this;
65 }
66
74 public function textParamsOfType( $type, ...$values ) {
75 foreach ( $values as $value ) {
76 $this->params[] = new ScalarParam( $type, $value );
77 }
78 return $this;
79 }
80
89 public function listParamsOfType( $listType, ...$values ) {
90 foreach ( $values as $value ) {
91 $this->params[] = new ListParam( $listType, $value );
92 }
93 return $this;
94 }
95
102 public function textParams( ...$values ) {
103 return $this->textParamsOfType( ParamType::TEXT, ...$values );
104 }
105
112 public function numParams( ...$values ) {
113 return $this->textParamsOfType( ParamType::NUM, ...$values );
114 }
115
126 public function longDurationParams( ...$values ) {
127 return $this->textParamsOfType( ParamType::DURATION_LONG, ...$values );
128 }
129
140 public function shortDurationParams( ...$values ) {
141 return $this->textParamsOfType( ParamType::DURATION_SHORT, ...$values );
142 }
143
151 public function expiryParams( ...$values ) {
152 return $this->textParamsOfType( ParamType::EXPIRY, ...$values );
153 }
154
161 public function sizeParams( ...$values ) {
162 return $this->textParamsOfType( ParamType::SIZE, ...$values );
163 }
164
172 public function bitrateParams( ...$values ) {
173 return $this->textParamsOfType( ParamType::BITRATE, ...$values );
174 }
175
186 public function rawParams( ...$values ) {
187 return $this->textParamsOfType( ParamType::RAW, ...$values );
188 }
189
200 public function plaintextParams( ...$values ) {
201 return $this->textParamsOfType( ParamType::PLAINTEXT, ...$values );
202 }
203
214 public function commaListParams( ...$values ) {
215 return $this->listParamsOfType( ListType::COMMA, ...$values );
216 }
217
228 public function semicolonListParams( ...$values ) {
229 return $this->listParamsOfType( ListType::SEMICOLON, ...$values );
230 }
231
242 public function pipeListParams( ...$values ) {
243 return $this->listParamsOfType( ListType::PIPE, ...$values );
244 }
245
256 public function textListParams( ...$values ) {
257 return $this->listParamsOfType( ListType::AND, ...$values );
258 }
259
265 public function dump() {
266 $contents = '';
267 foreach ( $this->params as $param ) {
268 $contents .= $param->dump();
269 }
270 return '<message key="' . htmlspecialchars( $this->key ) . '">' .
271 $contents . '</message>';
272 }
273}
Value object representing a message parameter that consists of a list of values.
Definition ListParam.php:10
const COMMA
A comma-separated list.
Definition ListType.php:11
const PIPE
A pipe-separated list.
Definition ListType.php:17
const AND
A natural-language list separated by "and".
Definition ListType.php:20
const SEMICOLON
A semicolon-separated list.
Definition ListType.php:14
Value object representing a message parameter that consists of a list of values.
Value object representing a message for i18n.
longDurationParams(... $values)
Chainable mutator which adds parameters which are a duration specified in seconds (ParamType::DURATIO...
textParams(... $values)
Chainable mutator which adds parameters of type text (ParamType::TEXT).
getKey()
Get the message key.
listParamsOfType( $listType,... $values)
Chainable mutator which adds list parameters with a common type.
params(... $values)
Chainable mutator which adds text parameters and MessageParam parameters.
commaListParams(... $values)
Chainable mutator which adds comma lists (ListType::COMMA).
semicolonListParams(... $values)
Chainable mutator which adds semicolon lists (ListType::SEMICOLON).
numParams(... $values)
Chainable mutator which adds numeric parameters (ParamType::NUM).
bitrateParams(... $values)
Chainable mutator which adds parameters which are a number of bits per second (ParamType::BITRATE).
shortDurationParams(... $values)
Chainable mutator which adds parameters which are a duration specified in seconds (ParamType::DURATIO...
getParams()
Get the parameter array.
sizeParams(... $values)
Chainable mutator which adds parameters which are a number of bytes (ParamType::SIZE).
textListParams(... $values)
Chainable mutator which adds natural-language lists (ListType::AND).
expiryParams(... $values)
Chainable mutator which adds parameters which are an expiry timestamp (ParamType::EXPIRY).
textParamsOfType( $type,... $values)
Chainable mutator which adds text parameters with a common type.
dump()
Dump the object for testing/debugging.
pipeListParams(... $values)
Chainable mutator which adds pipe lists (ListType::PIPE).
rawParams(... $values)
Chainable mutator which adds "raw" parameters (ParamType::RAW).
plaintextParams(... $values)
Chainable mutator which adds plaintext parameters (ParamType::PLAINTEXT).
__construct( $key, $params=[])
const DURATION_SHORT
A number of seconds, to be formatted as natural language text in an abbreviated way.
Definition ParamType.php:28
const EXPIRY
An expiry time.
Definition ParamType.php:39
const RAW
A text parameter which is substituted after formatter processing.
Definition ParamType.php:57
const TEXT
A simple text string or another MessageValue, not otherwise formatted.
Definition ParamType.php:13
const SIZE
A number of bytes.
Definition ParamType.php:42
const NUM
A number, to be formatted using local digits and separators.
Definition ParamType.php:16
const DURATION_LONG
A number of seconds, to be formatted as natural language text.
Definition ParamType.php:22
const PLAINTEXT
A text parameter which is substituted after formatter processing.
Definition ParamType.php:64
const BITRATE
A number of bits per second.
Definition ParamType.php:45
Value object representing a message parameter holding a single value.