I think your question answers itself, because you have a syntax error in your 
suggested HTML string:

  $html = '<div class="foo'><p>'
  ...

Use the Html class and you'll have fewer worries about malformed HTML.

WordPress code is full of hard-coded HTML strings and it's maddening to read 
and understand. Personally I'm thankful for MediaWiki's Html class to keep 
things orderly.

DanB

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Max Semenik
Sent: Monday, May 13, 2013 1:27 PM
To: Wikimedia developers
Subject: [Wikitech-l] Code style: overuse of Html::element()

Hi, I've seen recently a lot of code like this:

$html = Html::openElement( 'div', array( 'class' => 'foo' )
    . Html::rawElement( 'p', array(),
        Html::element( 'span', array( 'id' => $somePotentiallyUnsafeId ),
            $somePotentiallyUnsafeText
        )
    )
    . Html::closeElement( 'div' );

IMO, cruft like this makes things harder to read and adds additional 
performance overhead. It can be simplified to

$html = '<div class="foo'><p>'
    . Html::rawElement( 'p', array(),
        Html::element( 'span', array( 'id' => $somePotentiallyUnsafeId ),
            $somePotentiallyUnsafeText
        )
    )
    . '</p></div>';

What's your opinion, guys and gals?

--
Best regards,
  Max Semenik ([[User:MaxSem]])


_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l
_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to