'WikiFilePage' => 'includes/WikiFilePage.php',
'WikiImporter' => 'includes/Import.php',
'WikiPage' => 'includes/WikiPage.php',
- 'WikiPageFactory' => 'includes/WikiPageFactory.php',
'WikiRevision' => 'includes/Import.php',
'WikiMap' => 'includes/WikiMap.php',
'WikiReference' => 'includes/WikiMap.php',
$this->mTitle = $title;
}
+ /**
+ * Create a WikiPage object of the appropriate class for the given title.
+ *
+ * @param $title Title
+ * @return WikiPage object of the appropriate type
+ */
+ public static function factory( Title $title ) {
+ switch( $title->getNamespace() ) {
+ case NS_MEDIA:
+ throw new MWException( "NS_MEDIA is a virtual namespace" );
+ case NS_FILE:
+ $page = new WikiFilePage( $title );
+ break;
+ case NS_CATEGORY:
+ $page = new WikiCategoryPage( $title );
+ break;
+ default:
+ $page = new WikiPage( $title );
+ }
+
+ return $page;
+ }
+
/**
* Constructor from a page id
*
+++ /dev/null
-<?php
-/**
- * Factory class for classes representing a MediaWiki article and history.
- */
-class WikiPageFactory {
- /**
- * Create an WikiPage object of the appropriate class for the given title.
- *
- * @param $title Title
- * @return WikiPage object
- */
- public static function newFromTitle( Title $title ) {
- switch( $title->getNamespace() ) {
- case NS_MEDIA:
- throw new MWException( "NS_MEDIA is a virtual namespace" );
- case NS_FILE:
- $page = new WikiFilePage( $title );
- break;
- case NS_CATEGORY:
- $page = new WikiCategoryPage( $title );
- break;
- default:
- $page = new WikiPage( $title );
- }
-
- return $page;
- }
-}
function testWikiPageFactory() {
$title = Title::makeTitle( NS_FILE, 'Someimage.png' );
- $page = WikiPageFactory::newFromTitle( $title );
+ $page = WikiPage::factory( $title );
$this->assertEquals( 'WikiFilePage', get_class( $page ) );
$title = Title::makeTitle( NS_CATEGORY, 'SomeCategory' );
- $page = WikiPageFactory::newFromTitle( $title );
+ $page = WikiPage::factory( $title );
$this->assertEquals( 'WikiCategoryPage', get_class( $page ) );
$title = Title::makeTitle( NS_MAIN, 'SomePage' );
- $page = WikiPageFactory::newFromTitle( $title );
+ $page = WikiPage::factory( $title );
$this->assertEquals( 'WikiPage', get_class( $page ) );
}
}