value = $value; } /** * Encode an object containing HtmlJsCode objects. * * This takes an object or associative array where (some of) the values are HtmlJsCode objects, * and re-encodes it as a single HtmlJsCode object. * * @since 1.33 * @phpcs:ignore MediaWiki.Commenting.FunctionComment.ObjectTypeHintParam * @param object|array $obj Object or associative array to encode * @param bool $pretty If true, add non-significant whitespace to improve readability. * @return HtmlJsCode */ public static function encodeObject( $obj, $pretty = false ) { $parts = []; foreach ( $obj as $key => $value ) { $parts[] = ( $pretty ? ' ' : '' ) . Html::encodeJsVar( $key, $pretty ) . ( $pretty ? ': ' : ':' ) . Html::encodeJsVar( $value, $pretty ); } return new self( '{' . ( $pretty ? "\n" : '' ) . implode( $pretty ? ",\n" : ',', $parts ) . ( $pretty ? "\n" : '' ) . '}' ); } } /** @deprecated class alias since 1.41 */ class_alias( HtmlJsCode::class, 'XmlJsCode' );