{"shas":[["dcb1c70cd44957766e844fa1b866d418f95c18a8","5a7a6a189b47cd31d24667a751e4003cd04eced5@dd0e9695-b195-4be7-bd10-2dea1a65a6b6","* Split off WikiPage class from Article, WikiFilePage class from ImagePage, and WikiCategoryPage from CategoryPage. \n* WikiPage functions/fields are \"magically\" part of Article when accessed for b/c. Magic is kind of ugly but there are too many callers to make breaking changes atm. Some functions are just wrappers for WikiPage ones (were magic won't work).\n* Added newFromID() to each WikiPage subclass (works around pre-existing inheritance problem).\n* Added Page class for convenient type hinting and changed hints from Article -> Page. This lets things use WikiPage objects without getting type errors.\n* Updated FlaggedPage to extend WikiPage. Worked around getOldIdFromRequest().\n* Added setTimestamp() to WikiPage and moved some timestamp setting code from ParserCache to Article.\n* Removed ampersands from $dbw arguments.\n* @TODO: dependency inject user objects for WikiPage\n\nThe idea is to migrate things to use WikiPage, as the run-of-the-mill \"new Article()\" call doesn't care about $oldid and $wgRequest. After that, Article, ImagePage, and CategoryPage can be rewritten as an Action class or something sane (a Viewer class of sorts).\n\ngit-svn-id: svn+ssh://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3@91123 dd0e9695-b195-4be7-bd10-2dea1a65a6b6","aaron"]],"ref":"refs/heads/master","size":1,"head":"dcb1c70cd44957766e844fa1b866d418f95c18a8","push_id":35308655}