Hey,
Some suggestions regarding code quality and design:
* The MediaWiki SpecialPage system has serious design issues and is best treated as legacy API. I recommend not binding domain or application logic to it where this can be avoided. This means not having most code in a subclass of SpecialPage.
* Creating inheritance hierarchies to share code is very likely a bad idea. This is done often in MediaWiki, and in all cases I'm aware of has very negative consequences. Try separating concerns and using composition.
* Use hooks with caution. They can easily lead to lots of tight coupling and harmful procedural control flows. I suggest only introducing hooks that are clearly needed, and keeping argument lists of these to a minimum. This means both argument count and argument size (passing in a whole context object is likely bad for instance).
That being said, great you are working on improving this code! Also note how these are general suggestions/concerns that came to my mind after reading your email, not feedback on specific code or changes.
Cheers
-- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. ~=[,,_,,]:3 --