Hey,
Well they're utility functions meant to be used from near anywhere, which
I've
always considered an acceptable usage of static functions.
One of the few places where static does not hurt is in leaf methods. For
instance Math::abs. It is still somewhat dangerous to create such methods,
since it is quite possible a leaf stops being a leaf. And Html::element
certainly is not a leaf method. It is invoking other methods that on their
turn invoke more methods, some of which with quite high complexity. And
some of which are using global variables or static fields in the Html
class. Using this nearly everywhere means that nearly everything is quite
dependent on this specific code and its state. The principle that generally
components with a lot of incoming dependencies should be more abstract then
concrete is also violated here.
Cheers
--
Jeroen De Dauw
http://www.bn2vs.com
Don't panic. Don't be evil.
--