1<?php 2/** 3 * This program is free software; you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation; either version 2 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License along 14 * with this program; if not, write to the Free Software Foundation, Inc., 15 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 * http://www.gnu.org/copyleft/gpl.html 17 * 18 * @file 19 */ 20 21/** 22 * Variant of the Message class. 23 * 24 * Rather than treating the message key as a lookup 25 * value (which is passed to the MessageCache and 26 * translated as necessary), a RawMessage key is 27 * treated as the actual message. 28 * 29 * All other functionality (parsing, escaping, etc.) 30 * is preserved. 31 * 32 * @newable 33 * @since 1.21 34 */ 35class RawMessage extends Message { 36 37 /** 38 * Call the parent constructor, then store the key as 39 * the message. 40 * 41 * @stable to call 42 * @see Message::__construct 43 * 44 * @param string $text Message to use. 45 * @param array $params Parameters for the message. 46 * 47 * @throws InvalidArgumentException 48 */ 49 public function __construct( $text, $params = [] ) { 50 if ( !is_string( $text ) ) { 51 throw new InvalidArgumentException( '$text must be a string' ); 52 } 53 54 parent::__construct( $text, $params ); 55 56 // The key is the message. 57 $this->message = $text; 58 } 59 60 /** 61 * Fetch the message (in this case, the key). 62 * 63 * @return string 64 */ 65 public function fetchMessage() { 66 // Just in case the message is unset somewhere. 67 if ( $this->message === null ) { 68 $this->message = $this->key; 69 } 70 71 return $this->message; 72 } 73 74} 75