[Anti Pattern] Do not use $obj.propertyName

Vincent Massol vincent at massol.net
Tue Apr 17 11:59:49 CEST 2007


Hi,

I'm proposing a new category: Anti Patterns!

Here's one:

Instead of writing:

#set($obj = $doc.getObject("XWiki.XWikiUsers"))
#if ($obj.avatar == "...")
...

Write:

#set($obj = $doc.getObject("XWiki.XWikiUsers"))
#if ($obj.getProperty("avatar") && $obj.getProperty("avatar").getValue 
() ==  "...")
...

Reason:

$obj.avatar actually is equivalent to: $doc.display("avatar", $obj)
And the display() method renders differently when in view mode, in  
inline mode, etc. For example in inline mode it generates an HTML  
form INPUT element...

WDYT?

Thanks
-Vincent




More information about the devs mailing list