User "Tim Starling" posted a comment on MediaWiki.r103893.
Full URL: http://www.mediawiki.org/wiki/Special:Code/MediaWiki/103893#c26389
Commit summary:
Implement a number of namespace related equals functions:
* MWNamespace::equals to test equivalence of two namespaces (forward compatible
with any changes we may make like introducing namespace keys like 'USER')
* MWNamespace::subjectEquals to test equivalence of the subject of two
namespaces e.g.: MWNamespace::subjectEquals( NS_USER, $ns ); instead of testing
for equivalence to both NS_USER and NS_USER_TALK
* Title::inNamespace to use instead of $title->getNamespace() == NS_???
* Title::inNamespaces for use like $title->inNamespaces( NS_USER, NS_PROJECT )
when you only care if it's in one of a number of namespaces (also accepts an
array)
* Title::hasSubjectNamespace for use instead of testing for equivalence to both
the subject and talk such as NS_USER and NS_USER_TALK.
Include phpunit tests for all this new code, and also add some tests for some
existing code.
Comment:
My preference is for getNamespaceObj(). Using __toString() will break in lots
of subtle ways.
<pre>
> class Foo { function __toString() { return '1'; } }
> $f = new Foo;
> var_dump($f == '1')
bool(true)
> var_dump($f == 1)
PHP Notice: Object of class Foo could not be converted to int in ... :
eval()'d code on line 1
bool(true)
> var_dump($f === 1)
bool(false)
> var_dump($f === '1')
bool(false)
</pre>
_______________________________________________
MediaWiki-CodeReview mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-codereview