id = (int)$id; $this->text = $text; $this->message = $message ?: new RawMessage( '$1', [ Message::plaintextParam( $this->text ) ] ); $this->data = $data; } /** * Create a new, unsaved CommentStoreComment * * @param string|Message|CommentStoreComment $comment Comment text or Message object. * A CommentStoreComment is also accepted here, in which case it is returned unchanged. * @param array|null $data Structured data to store. Keys beginning with '_' are reserved. * Ignored if $comment is a CommentStoreComment. * @return CommentStoreComment */ public static function newUnsavedComment( $comment, ?array $data = null ) { if ( $comment instanceof CommentStoreComment ) { return $comment; } if ( $data !== null ) { foreach ( $data as $k => $v ) { if ( substr( $k, 0, 1 ) === '_' ) { throw new InvalidArgumentException( 'Keys in $data beginning with "_" are reserved' ); } } } if ( $comment instanceof Message ) { $message = clone $comment; // Avoid $wgForceUIMsgAsContentMsg $text = $message->inLanguage( MediaWikiServices::getInstance()->getContentLanguage() ) ->setInterfaceMessageFlag( true ) ->text(); return new CommentStoreComment( null, $text, $message, $data ); } else { return new CommentStoreComment( null, $comment, null, $data ); } } } // This alias can not be removed, because serialized instances of this class are stored in Echo // tables, until we either migrate to JSON serialization (T325703) or expire those events (T383948). /** @deprecated class alias since 1.40 */ class_alias( CommentStoreComment::class, 'CommentStoreComment' );